首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq读取数据为空:未将对象引用设置到对象的实例

2014-01-28 
用linq查询时因为数据表中某一项为空造成:未将对象引用设置到对象的实例。的错误,如何解决啊 用SQL时,当读取

用linq查询时因为数据表中某一项为空造成:未将对象引用设置到对象的实例。的错误,如何解决啊
用SQL时,当读取的数据为空时却不会出错
数据表中TeaID=1005 的TeaAge为NULL
protected void Button1_Click(object sender, EventArgs e)
{
  sqlconn.Open();
  string s = "select * from TeacherInfo where TeaID=1005 ";
  SqlCommand cmd = new SqlCommand(s,sqlconn );
  SqlDataReader dr = cmd.ExecuteReader();
  dr.Read();
  TextBox1.Text = dr["TeaAge"].ToString();
  dr.Close();
  sqlconn.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{
  testDataContext test = new testDataContext();
  var query = from q in test.TeacherInfo where q.TeaID == 1005 select q;
  var result = query.ToArray()[0];
  TextBox1.Text = result.TeaAge.ToString ();
}

------解决方法--------------------------------------------------------
  Convert.ToString(result.TeaAge)

或result.TeaAge.HasValue先判断下
------解决方法--------------------------------------------------------
这是因为 dr["TeaAge"] 的类型是 object,而 result.TeaAge 的类型是 int?。

很简单,写:

C# code
TextBox1.Text = result.TeaAge==null?"null":result.TeaAge.ToString ();
        

热点排行