我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

时间:2023-02-06 15:20:28
            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

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

63 个解决方案

#1


看来没人么?

#2


dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

#3



if (codeTable!=null && codeTable.Rows.Count != 0)
{
    //不为空就进来
}

#4


设知道你ds.Tables[0]是什么啊,new DataTable,那么rows肯定是0

#5


引用 2 楼 yyantifa 的回复:
dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的

#6


引用 3 楼 hwenycocodq520 的回复:

if (codeTable!=null && codeTable.Rows.Count != 0)
{
    //不为空就进来
}


#7



DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}

#8


研究什么啊,没什么好研究的

#9


引用 4 楼 bdmh 的回复:
设知道你ds.Tables[0]是什么啊,new DataTable,那么rows肯定是0

rows不是0,我给你看看

#10


完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }

#11


codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#12


引用 5 楼 l644374452y 的回复:
Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

#13


..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#14


说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们

#15


这个问题 我表示很蛋疼。。

#16


            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??

#17


引用 7 楼 hwenycocodq520 的回复:

DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#18


引用 12 楼 yyantifa 的回复:
Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   

#19


完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }

#20


引用 17 楼 hwenycocodq520 的回复:
Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

#21


引用 20 楼 l644374452y 的回复:
Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

#22


引用 16 楼 a346729576 的回复:
            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟

#23


引用 18 楼 l644374452y 的回复:
Quote: 引用 12 楼 yyantifa 的回复:

Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   


你不是自己都判断了codeTable.Rows.Count != 0,难道他还会小于0?
无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。

#24


引用 21 楼 hwenycocodq520 的回复:
Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题

#25


引用 楼主 l644374452y 的回复:
            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

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


你发这样的代码上来如何改ds缓存里面压根没有表,第二行代码就错了

#26


引用 24 楼 l644374452y 的回复:
Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。

#27


引用 23 楼 yyantifa 的回复:
Quote: 引用 18 楼 l644374452y 的回复:

Quote: 引用 12 楼 yyantifa 的回复:

Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   


你不是自己都判断了codeTable.Rows.Count != 0,难道他还会小于0?
无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。

。。。说了啊,codeTable.Rows.Count不大于0,也不小于0,它的值是ds.tables[0].rows.count = ds.tables[0].rows.count|0   

#28


引用 26 楼 yyantifa 的回复:
Quote: 引用 24 楼 l644374452y 的回复:

Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。


是的 我就是不知道怎么验证它不为null

#29


引用 22 楼 l644374452y 的回复:
Quote: 引用 16 楼 a346729576 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟
是的兄弟。。。求指点....

#30


引用 25 楼 hwenycocodq520 的回复:
Quote: 引用 楼主 l644374452y 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

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


你发这样的代码上来如何改ds缓存里面压根没有表,第二行代码就错了

你看看我发的完整代码

#31


引用 28 楼 l644374452y 的回复:
Quote: 引用 26 楼 yyantifa 的回复:

Quote: 引用 24 楼 l644374452y 的回复:

Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。


是的 我就是不知道怎么验证它不为null


判断这3个条件:
dataset为 null
dataset是否有datatable
dataset里面的第一个表有没有数据。

#32


引用 14 楼 l644374452y 的回复:
说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们



智商捉鸡啊。。。。
左侧的codeTable.Rows.Count代表的是Count对应的是codeTable.Rows.Count
|是分割线
右侧的是它的值0。。。。你这个瞎扯淡什么啊

#33


引用 29 楼 a346729576 的回复:
Quote: 引用 22 楼 l644374452y 的回复:

Quote: 引用 16 楼 a346729576 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟
是的兄弟。。。求指点....


看我们的回复吧 呵呵

#34


引用 32 楼 starfd 的回复:
Quote: 引用 14 楼 l644374452y 的回复:

说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们



智商捉鸡啊。。。。
左侧的codeTable.Rows.Count代表的是Count对应的是codeTable.Rows.Count
|是分割线
右侧的是它的值0。。。。你这个瞎扯淡什么啊


我去....你试试就知道了。。。唉。。count的值就是codeTable.Rows.Count|0 ,你怎么就看不懂呢

#35


要不然我就不用那么纠结了

#36


你的理解能力太差了,不适合搞编程,鉴定完毕。

#37


引用 13 楼 l644374452y 的回复:
..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

a不显示是因为你刚执行到它这段代码,a还没被赋值,你这段执行完毕后,你再看a就有值了

#38


引用 37 楼 starfd 的回复:
Quote: 引用 13 楼 l644374452y 的回复:

..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

a不显示是因为你刚执行到它这段代码,a还没被赋值,你这段执行完毕后,你再看a就有值了

试过了,,还是没有

#39


引用 36 楼 qldsrx 的回复:
你的理解能力太差了,不适合搞编程,鉴定完毕。

我只想说 ,呵呵。。  一般人看见了这个问题都会觉得简单,但是 只有试过了才明白我的意思

#40



if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}

#41


引用 40 楼 oBingChi 的回复:

if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}


dt.Rows.Count>0  这个判断无效。。 不信你试试

#42


引用 40 楼 oBingChi 的回复:

if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}

dt!=null 是可以 但是遇到我那样的方式用了 就行不通 了

#43


楼主下班回家了,,明天继续讨论,谢谢各位参与。。 大家可以接着讨论哈 呵呵

#44


引用 13 楼 l644374452y 的回复:
..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧




public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }


在吐槽一下,就算你的截图中codeTable.Rows.Count==0了,那他就直接return codeTable;有什么问题啊。

#45



dataset != null && dataset.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0


你把空格打出来啊  没空格就错了  我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#46


引用 19 楼 l644374452y 的回复:
完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }


跟一下ds.Tables[0]的值,看看这个表有没有数据。

#47


无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。
感觉23楼兄弟 说的没什么问题啊。
这样判断 错在哪里?

#48


引用 14 楼 l644374452y 的回复:
说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们

看到这个,我笑喷了,并不是说把你赋值号右侧的东西给了左侧,|只是一个分隔符,提示的时候让你好理解,告诉你count为0,不要纠结了,就是这样的,你查询的没有数据,永远进不去“不为空就进来”

#49


LZ是一个SB,老子写了这么多年的程序,一直都是用!=null && .count>0或.count!=0判断的。

#50


该回复于2013-08-09 09:00:26被管理员删除

#1


看来没人么?

#2


dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

#3



if (codeTable!=null && codeTable.Rows.Count != 0)
{
    //不为空就进来
}

#4


设知道你ds.Tables[0]是什么啊,new DataTable,那么rows肯定是0

#5


引用 2 楼 yyantifa 的回复:
dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的

#6


引用 3 楼 hwenycocodq520 的回复:

if (codeTable!=null && codeTable.Rows.Count != 0)
{
    //不为空就进来
}


#7



DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}

#8


研究什么啊,没什么好研究的

#9


引用 4 楼 bdmh 的回复:
设知道你ds.Tables[0]是什么啊,new DataTable,那么rows肯定是0

rows不是0,我给你看看

#10


完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }

#11


codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#12


引用 5 楼 l644374452y 的回复:
Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

#13


..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#14


说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们

#15


这个问题 我表示很蛋疼。。

#16


            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??

#17


引用 7 楼 hwenycocodq520 的回复:

DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#18


引用 12 楼 yyantifa 的回复:
Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   

#19


完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }

#20


引用 17 楼 hwenycocodq520 的回复:
Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

#21


引用 20 楼 l644374452y 的回复:
Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

#22


引用 16 楼 a346729576 的回复:
            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟

#23


引用 18 楼 l644374452y 的回复:
Quote: 引用 12 楼 yyantifa 的回复:

Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   


你不是自己都判断了codeTable.Rows.Count != 0,难道他还会小于0?
无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。

#24


引用 21 楼 hwenycocodq520 的回复:
Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题

#25


引用 楼主 l644374452y 的回复:
            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

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


你发这样的代码上来如何改ds缓存里面压根没有表,第二行代码就错了

#26


引用 24 楼 l644374452y 的回复:
Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。

#27


引用 23 楼 yyantifa 的回复:
Quote: 引用 18 楼 l644374452y 的回复:

Quote: 引用 12 楼 yyantifa 的回复:

Quote: 引用 5 楼 l644374452y 的回复:

Quote: 引用 2 楼 yyantifa 的回复:

dataset!=null&dataset.Tables.count>0&&ds.tables[0].rows.count>0

一看就知道是错的


你从哪里看出来有问题的,麻烦你指正一下。。

ds.tables[0].rows.count>0 不成立... 因为 ds.tables[0].rows.count = ds.tables[0].rows.count|0   


你不是自己都判断了codeTable.Rows.Count != 0,难道他还会小于0?
无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。

。。。说了啊,codeTable.Rows.Count不大于0,也不小于0,它的值是ds.tables[0].rows.count = ds.tables[0].rows.count|0   

#28


引用 26 楼 yyantifa 的回复:
Quote: 引用 24 楼 l644374452y 的回复:

Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。


是的 我就是不知道怎么验证它不为null

#29


引用 22 楼 l644374452y 的回复:
Quote: 引用 16 楼 a346729576 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟
是的兄弟。。。求指点....

#30


引用 25 楼 hwenycocodq520 的回复:
Quote: 引用 楼主 l644374452y 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

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


你发这样的代码上来如何改ds缓存里面压根没有表,第二行代码就错了

你看看我发的完整代码

#31


引用 28 楼 l644374452y 的回复:
Quote: 引用 26 楼 yyantifa 的回复:

Quote: 引用 24 楼 l644374452y 的回复:

Quote: 引用 21 楼 hwenycocodq520 的回复:

Quote: 引用 20 楼 l644374452y 的回复:

Quote: 引用 17 楼 hwenycocodq520 的回复:

Quote: 引用 7 楼 hwenycocodq520 的回复:


DataSet ds = new DataSet();
if(ds!=null)
{
   DataTable codeTable = ds.Tables[0];
   if (codeTable.Rows.Count != 0)
   {
      //不为空就进来
   }
}


俺写了个错误的东西出来,楼主请无视,, 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧


哈哈  知道我的意思了吧

不是知道你意思,是你问题写的代码本来就不对,被带进“沟”里面了

。。。。本来就是错误的代码,希望你们能帮我解决这个问题


上面有人说的很清楚了,new的dataset里面是null,没有tables[0]这个表,他肯定抛异常了。


是的 我就是不知道怎么验证它不为null


判断这3个条件:
dataset为 null
dataset是否有datatable
dataset里面的第一个表有没有数据。

#32


引用 14 楼 l644374452y 的回复:
说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们



智商捉鸡啊。。。。
左侧的codeTable.Rows.Count代表的是Count对应的是codeTable.Rows.Count
|是分割线
右侧的是它的值0。。。。你这个瞎扯淡什么啊

#33


引用 29 楼 a346729576 的回复:
Quote: 引用 22 楼 l644374452y 的回复:

Quote: 引用 16 楼 a346729576 的回复:

            DataSet ds = new DataSet();
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
               //不为空就进来
            }

           只new了dataset 说好的datatable呢?ds.Tables[0]是啥??


....你基础不太好啊 兄弟
是的兄弟。。。求指点....


看我们的回复吧 呵呵

#34


引用 32 楼 starfd 的回复:
Quote: 引用 14 楼 l644374452y 的回复:

说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们



智商捉鸡啊。。。。
左侧的codeTable.Rows.Count代表的是Count对应的是codeTable.Rows.Count
|是分割线
右侧的是它的值0。。。。你这个瞎扯淡什么啊


我去....你试试就知道了。。。唉。。count的值就是codeTable.Rows.Count|0 ,你怎么就看不懂呢

#35


要不然我就不用那么纠结了

#36


你的理解能力太差了,不适合搞编程,鉴定完毕。

#37


引用 13 楼 l644374452y 的回复:
..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

a不显示是因为你刚执行到它这段代码,a还没被赋值,你这段执行完毕后,你再看a就有值了

#38


引用 37 楼 starfd 的回复:
Quote: 引用 13 楼 l644374452y 的回复:

..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

a不显示是因为你刚执行到它这段代码,a还没被赋值,你这段执行完毕后,你再看a就有值了

试过了,,还是没有

#39


引用 36 楼 qldsrx 的回复:
你的理解能力太差了,不适合搞编程,鉴定完毕。

我只想说 ,呵呵。。  一般人看见了这个问题都会觉得简单,但是 只有试过了才明白我的意思

#40



if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}

#41


引用 40 楼 oBingChi 的回复:

if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}


dt.Rows.Count>0  这个判断无效。。 不信你试试

#42


引用 40 楼 oBingChi 的回复:

if(dt!=null&&dt.Rows.Count>0)
{
//我都是先判断不为空为先
}

dt!=null 是可以 但是遇到我那样的方式用了 就行不通 了

#43


楼主下班回家了,,明天继续讨论,谢谢各位参与。。 大家可以接着讨论哈 呵呵

#44


引用 13 楼 l644374452y 的回复:
..用一个int类型的变量去接收也不行。。 比如  int a=codeTable.Rows.Count; 调试的时候把鼠标移到变量a上面竟然什么都不显示。。。  说明codeTable.Rows.Count的值是 我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧




public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }


在吐槽一下,就算你的截图中codeTable.Rows.Count==0了,那他就直接return codeTable;有什么问题啊。

#45



dataset != null && dataset.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0


你把空格打出来啊  没空格就错了  我发现了一个奇怪的问题,如何判断DataTable的是否为空?大家来研究一下吧

#46


引用 19 楼 l644374452y 的回复:
完整代码     

public static DataTable QuerySqlDataTabe(string querySql) 
        {
            EIInfo outInfo = ExecQuery(querySql);
            DataSet ds = new DataSet();
            outInfo.GetBlockVal(ds);
            DataTable codeTable = ds.Tables[0];
            if (codeTable.Rows.Count != 0)
            {
                DataRow newRow = codeTable.NewRow();
                newRow[0] = "";
                newRow[1] = "";
                codeTable.Rows.InsertAt(newRow, 0);
            }
            return codeTable;
        }


跟一下ds.Tables[0]的值,看看这个表有没有数据。

#47


无非就是判断3点:
dataset null
dataset是否有datatable
dataset里面的第一个表有没有数据。
感觉23楼兄弟 说的没什么问题啊。
这样判断 错在哪里?

#48


引用 14 楼 l644374452y 的回复:
说白了 就是 codeTable.Rows.Count = codeTable.Rows.Count|0    

大家明白我的意思了吧。。。大神们

看到这个,我笑喷了,并不是说把你赋值号右侧的东西给了左侧,|只是一个分隔符,提示的时候让你好理解,告诉你count为0,不要纠结了,就是这样的,你查询的没有数据,永远进不去“不为空就进来”

#49


LZ是一个SB,老子写了这么多年的程序,一直都是用!=null && .count>0或.count!=0判断的。

#50


该回复于2013-08-09 09:00:26被管理员删除