for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)//根据每组窗帘得到的数据集行数
                    {
                        if (ds2.Tables[0].Rows[j]["LAYER_TYPE"].ToString() == "")
                        { }
                        else//如果窗帘类型不为空
                           { }
                  }
我用的是MySQL数据库,怎么这样判断会出错?
错误提示:无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集还有我要说明的是,这个错误只有在循环过程中完全没有数据的时候会出错,如果在循环中有的行有数据,有的行没数据就可以正常运行。

解决方案 »

  1.   

    通俗说,没数据的时候dataset的table是点不出来的,要先判断dataset是否为null;但是这个错误的错误提示不应该是你说的,可以试下
      

  2.   

    for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)//根据每组窗帘得到的数据集行数 
                        { 
                            if (ds2.Tables[0].Rows[j]["LAYER_TYPE"]==DBNull.Value) 
                            { } 
                            else//如果窗帘类型不为空 
                              { } 
                      } 
      

  3.   

    我是在windows mobile下编程的
    2楼的还是不行
    错误提示:无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 
      

  4.   

    用sql语句把null的行筛选掉就得了
      

  5.   

    我只能在C#代码上改,SQL语句不是我负责的
      

  6.   

    在网上搜索了下,这个错误提示很可能和我配置有关系,要引用个system.sr.dll 可我到现在也没找到这文件。。
      

  7.   

    数据集是有数据,只是在判断LAYER_TYPE这个字段,是否为空
    这个错误报告,在网上查了,说是没有引用一个程序集System.SR.DLL,可是我找不到那个程序集。
    我再次说明一下,我是用VS2005下的mobile 编程,用的模拟器实现的。
      

  8.   

      MySql不清楚. 如果是MS-SQL的话,判断为空那里没错.
    1.数据库里的null出来就是DBNull.value了,DBNull继承了IConvertible接口,是可以Tostring()的.    2.数据表的数据是不能用null判断的。
      

  9.   

    好了,现在实现了
    要前面再加一个判断
    if(ds2.Tables[0].Rows[j]["LAYER_TYPE"]!=null)
    就可以了