当前位置: 代码迷 >> ASP.NET >> 200分DataTable有关问题的解决方法
  详细解决方案

200分DataTable有关问题的解决方法

热度:2743   发布时间:2013-02-26 00:00:00.0
200分求一个DataTable问题的解决办法!
我现在有一个DataTable,代码如下:
DataTable   dt   =     dcFunction.GetDataTable(funcId);
当我在遍历dt时:
for(int   i=0;i <dt.Rows.Count;i++)
{
    string   str1   =   dt.Rows[i][ "authorName "];
    string   str2   =   dt.Rows[i][ "funcName "];
}
但是如果这个返回的dt为空的时候,也就是没有查询到数据时,总是报错,说dt中没有数据,可是我想要得到的是如果dt中没有数据的话,把str1和str2的赋为 " ",而不是报错,我想屏蔽掉这个错误!!也就是说查到数据时str1和str2中就是查到的数据,如果查不到,str1和str2   等于 " "

------解决方案--------------------------------------------------------
按照你目前的写法,dt没有数据也不应该报错.
------解决方案--------------------------------------------------------
是不是GetDataTable里面有问题?另外string str1 = String.Empty;string str2 = String.Empty;然后for(int i=0;i <dt.Rows.Count;i++){ str1 = dt.Rows[i][ "authorName "]; str2 = dt.Rows[i][ "funcName "];}
------解决方案--------------------------------------------------------
for(int i=0;i <dt.Rows.Count;i++)
{
string str1 = dt.Rows[i][ "authorName "];
string str2 = dt.Rows[i][ "funcName "];
}

变量重定义了。

另外,没有数据应该不会报错,比如如果没数据,下面这个就应该为空字符串。dt.Rows[i][ "authorName "].ToString();
------解决方案--------------------------------------------------------
string str1 = " ";
string str2 = " ";

for(int i=0;i <dt.Rows.Count;i++)
{
str1 = dt.Rows[i][ "authorName "].ToString();
str2 = dt.Rows[i][ "funcName "].ToString();
}
------解决方案--------------------------------------------------------
如果没有数据也不会报错的.

你在for里面string str1,str2,这样你想咋搞?

是不是dcFunction.GetDataTable(funcId);返回的是null值?

------解决方案--------------------------------------------------------
string str1 = (dt.Rows[i][ "authorName "] == null) ? String.Empty : (string)dt.Rows[i][ "authorName "];
string str2 = (dt.Rows[i][ "funcName "] == null) ? String.Empty : (string)dt.Rows[i][ "funcName "];
------解决方案--------------------------------------------------------
如果是null的话.dt.Rows.Count这里就会报错了.
------解决方案--------------------------------------------------------
加个断点看一看..监视下返回的dt.Rows.Count
------解决方案--------------------------------------------------------
变量重定义了。
------解决方案--------------------------------------------------------
加null判断处理
Or
str1 = dt.Rows[i][ "authorName "].ToString()+ " ";
  相关解决方案