代码如下
myConnection.Open ();
SqlDataAdapter Adapter1=new SqlDataAdapter("SELECT DateTime,TagName,Value FROM v_AnalogLive WHERE TagName='SysTimeMin' ",myConnString); SqlCommandBuilder thisBuilder=new SqlCommandBuilder(Adapter1); DataSet DataSet1=new DataSet(); Adapter1.Fill(DataSet1," v_AnalogLive");
DataSet1.Tables["v_AnalogLive"].Rows[1]["Value"]=30;
Adapter1.Update(DataSet1,"v_AnalogLive"); dataGrid4.SetDataBinding(DataSet1, " v_AnalogLive");
系统老报"未将对象引用设置到对象的实例"的错误.请问下高手们是怎么回事啊.
myConnection.Open ();
SqlDataAdapter Adapter1=new SqlDataAdapter("SELECT DateTime,TagName,Value FROM v_AnalogLive WHERE TagName='SysTimeMin' ",myConnString); SqlCommandBuilder thisBuilder=new SqlCommandBuilder(Adapter1); DataSet DataSet1=new DataSet(); Adapter1.Fill(DataSet1," v_AnalogLive");
DataSet1.Tables["v_AnalogLive"].Rows[1]["Value"]=30;
Adapter1.Update(DataSet1,"v_AnalogLive"); dataGrid4.SetDataBinding(DataSet1, " v_AnalogLive");
系统老报"未将对象引用设置到对象的实例"的错误.请问下高手们是怎么回事啊.
1.用SqlCommandBuilder 实现批量更新:
http://blog.csdn.net/ChengKing/category/143659.aspx?PageNumber=3
2.当DataSet中包含主/子表时,Update更新步骤:
http://blog.csdn.net/chengking/archive/2005/10/03/494717.aspx
Adapter1.Fill(DataSet1," v_AnalogLive");
DataSet1.Tables["v_AnalogLive"].Rows[1]["Value"]=30;//这里赋值的是给第二条记录,在这里你可以做个判断。
if (DataSet1.Tables["v_AnalogLive"].Rows.Count > 1)//大于1是因为你是从第二条开始赋值
{
DataSet1.Tables["v_AnalogLive"].Rows[1]["Value"]=30;
}
//自己可以测试一下是不是这样。