C#自定义方法从dataset读到数组总提示未将对象引用设置到对象的实例 貌似是初始化的问题

publicstaticint[]GetQID(DataSetdataset_source){DataRowdr=null;int[]num=null;for(inti=... public static int[] GetQID(DataSet dataset_source)
{
DataRow dr=null;
int[] num=null;
for (int i = 0; i < dataset_source.Tables[0].Rows.Count; i++)
{
dr = dataset_source.Tables[0].Rows[i];
num[i] = GetSafeData.ValidateDataRow_N(dr,"qID");
}
return num;
}
通过getsafedata可以返回列名为qID的在整数数据行,在调试中该函数可以返回正确的值但到了赋值给num[i]时出现了这个报错
int[] num=null实例化这句是不是有问题?
展开
 我来答
人当自助
2013-05-03 · TA获得超过674个赞
知道小有建树答主
回答量:190
采纳率:50%
帮助的人:33.3万
展开全部
在声明int[] num 时,没有指明数组的大小,再后来你就直接赋值了,也没有指明大小,在for 语句中,你可以先实例化数组,指明大小,如:
int a=dataset_source.tables[0].Rows.count;
num=new int[a];
出现这种问题一般是没有实例化对象造成的。
zhouxiang_1216
2013-05-03 · TA获得超过2590个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1360万
展开全部
变量初始化有问题,缺少判断,没有处理DataSet可能为空等情况,也没有必要专门写一个返回DataRow的方法,直接取第几列的数据就是了,写了个例子在下面,希望对你有帮助:
public static int[] GetQID(DataSet ds)
{
List<int> results=new List<int>;
if(ds!=null&&ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0)
foreach(DataRow dr in ds.Tables[0].Rows)
results.Add(Convert.ToInt32(dr[index])) //index指示你要取的是第几列,改成你要的数字
return results.ToArray();
}
有疑问请追问或是Hi
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
airroom110
2013-05-03 · TA获得超过219个赞
知道小有建树答主
回答量:498
采纳率:0%
帮助的人:113万
展开全部
num =GetSafeData.ValidateDataRow_N(dr,"qID");
而不是num[i]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式