我发现了一个奇怪的问题,如何判断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 , 那是为了便于清洗看到中间加了个分隔符,默认是白色的,或者你设置成为黑的了,或者截图出来是黑的.总之,大家的都有分隔符的.