首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小弟我发现了一个奇怪的有关问题,怎么判断DataTable的是否为空?大家来研究一下吧

2013-08-11 
我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧DataSet ds new DataSet()DataT

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

热点排行