代码如下
                  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.   

    参考:
    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
      

  2.   

    可能没有记录或只有一条记录就会出现问题。
    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;
    }
    //自己可以测试一下是不是这样。