日期:2014-05-18  浏览次数:20518 次

更新数据源的问题

  int str2 = 58;
  string str = ConfigurationSettings.AppSettings["accessCon"];
  OleDbConnection conn = new OleDbConnection(str);
  string str1 = "select fangwei from house where id =" + str2;
  OleDbDataAdapter od = new OleDbDataAdapter(str1, conn);
  OleDbCommandBuilder ocm = new OleDbCommandBuilder(od);
  DataSet ds = new DataSet();
  od.Fill(ds, "table");
  DataTable dt = ds.Tables["table1"];
  DataRow row = dt.Rows[0];
  row["fangwei"] = TextBox1.Text;
  od.Update(ds, "table1");
  datagrid();

更新不了呢,总是报这错误,高手帮忙看看吧,我实在检查不出来了,,晕 以前用到都是对的
这次怎么老是报错
System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Default3.Button1_Click(Object sender, EventArgs e)

------解决方案--------------------
建议用Update语句来写,这样要安全得多.
如果你十分想用DataAdapter来做更新,那你在读这个表时,应该判断一下记录不为null时,才做更新,这样就不会出现"System.NullReferenceException: 未将对象引用设置到对象的实例。"了

DataTable dt = ds.Tables["table1"]; 
if (dt.Rows.Count > 0) //写此句来判断
{
DataRow row = dt.Rows[0]; 
row["fangwei"] = TextBox1.Text; 
od.Update(ds, "table1"); 
}