读书人

小弟我发现了一个奇怪的有关问题,怎么

发布时间: 2013-08-11 22:22:29 作者: rapoo

我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧
DataSet ds = new DataSet();
DataTable codeTable = ds.Tables[0];
if (codeTable.Rows.Count != 0)
{
//不为空就进来
}

codeTable != null 和 codeTable.Rows.Count 这两个方法是错误的,大家来研究一下吧



哈哈 知道我的意思了吧
不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了
。。。。本来就是错误的代码,希望你们能帮我解决这个问题

上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。
[解决办法]
DataSet ds = new DataSet();

执行DataTable codeTable = ds.Tables[0];后就提示
"无法找到表 0。"

如果单纯用1L的代码,建议LZ先调试了再说. 如果是用10L的代码,LZ还是看看ds.Tables里面到底是什么...

ds.Tables是个List<DataTable>类型的东西.单纯New出来的DataSet的Tables必须是Count为0啊.

像以下的代码:
DataSet ds = new DataSet();
DataTable table = new DataTable();
ds.Tables.Add(table);
DataTable codeTable = ds.Tables[0];
if (codeTable.Rows.Count != 0)
{
DataRow newRow = codeTable.NewRow();
newRow[0] = "";
newRow[1] = "";
codeTable.Rows.InsertAt(newRow, 0);
}

其中
codeTable.Rows.Count是等于0的,因为table是new出来的,没有具体的row数据


所以如前面几位大大所说,一是判断ds是否null,一是判断tables.Count是否为0或大于0,一是判断tables[0].Rows.Count是否为0或大于.

至于说的codeTable.Rows.Count
[解决办法]
0 , 那是为了便于清洗看到中间加了个分隔符,默认是白色的,或者你设置成为黑的了,或者截图出来是黑的.总之,大家的都有分隔符的.

读书人网 >C#

热点推荐