如下代码所示,我想用sqldatareader读取数据表里的数据写入listview,但碰到记录里面有为空的字段则报错,我写了一个判断,但好象没发挥作用,求高手指点指点
while (MyReader.Read())
                {
                    ListViewItem MyItem = new ListViewItem();                    for (int j = 0; j < MyReader.FieldCount - 2; j++)
                    {
                        if (MyReader.IsDBNull(0))
                        {
                            MyItem.SubItems.Add(MyReader.GetString(j + 1));                        }
                        else
                        {
                            MyItem.SubItems.Add("NULL");
                        }
                    }
                    this.listView1.Items.Add(MyItem);
                }

解决方案 »

  1.   

    我很少用GetString,我觉得不方便。为Null的字段要错,取值之前还要判断。所以我一般rd[0].ToString();
    嘿嘿。
      

  2.   

    呵呵,行,这也是一个应急办法了.直接回避了NULL的问题.谢谢了.
      

  3.   

     for (int j = 0; j < MyReader.FieldCount - 2; j++) 
     { 
           if (MyReader[j]==DBNull.Value) 
           { 
                MyItem.SubItems.Add("NULL");        } 
           else 
           { 
                MyItem.SubItems.Add(MyReader[j].ToString()); 
           }