现在要获取datatable中的每一行的值,但是如果有字段没有值的时候,就会报错,是该行没有记录,现在怎么可以控制这个行呢,他继续运行下去?
例如:
for(int i=0;i<dt.rows.count;i++)
{
string name="";
string sex="";
string age="";
string address="";name=dt.Rows[i]["name"].ToString();
sex=dt.Rows[i]["sex"].ToString();
age=dt.Rows[i]["age"].ToString();
address=dt.Rows[i]["address"].ToString(); 
}
现在如果表里有5条数据,第2行的name为空,这个时候就会出错了。
他就会报错了,有什么好的办法控制呢?

解决方案 »

  1.   

    判断也是一样出错啊!比如说if(dt.rows[i]["name"]==null)
    {}
    这样就出错误了。
      

  2.   

    这样试试:
    if(dt.rows[i]["name"] == DBNull.Value) 
      

  3.   

    if(dt.rows[i][ "name "].Equals(""))
    {} 
      

  4.   

    建议先用try捕获一下异常,再根据异常判断.
      

  5.   

    使用Convert.ToString()可以将null转换为""
      

  6.   

    if(dt.rows[i][ "name "]   ==   DBNull.Value)   
    思路就是这样,我以前遇到过这个问题,就是这么判断解决的.
      

  7.   

    name=dt.Rows[i][ "name "].IsDBNull(1) ? "" : dt.Rows[i][ "name "].Tostring();
      

  8.   

    为空的值绑定到DataTable里面就不是空了阿,所以不是这个原因造成错误的;