SqlConnection cn=Data.Connection();
SqlDataAdapter da=new SqlDataAdapter("select * from [user]",cn);
DataSet ds=(DataSet)Cache["my"];
da.Update(ds);
cn.Close();
出现如下错误:异常详细信息: System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。问高手如何解决?

解决方案 »

  1.   

    因为ds中有新行,所以需要insertcommand,
    如果不想自己写insertcommand,可以自动生成,如下  SqlConnection cn=Data.Connection();
    SqlDataAdapter da=new SqlDataAdapter("select * from [user]",cn);
    DataSet ds=(DataSet)Cache["my"];
    SqlCommandBuilder cb = new SqlCommandBuilder(da); //加入这一句
    da.Update(ds);
    cn.Close();
      

  2.   

    SqlConnection cn=Data.Connection();
    SqlDataAdapter da=new SqlDataAdapter("select * from [user]",cn);
    DataSet ds=(DataSet)Cache["my"];
    SqlCommandBuilder cb = new SqlCommandBuilder(da); //加入这一句
    da.Update(ds);
    cn.Close();我加上了这句.可是又出现新的错误了,如下:异常详细信息: System.Data.SqlClient.SqlException: 在关键字 'user' 附近有语法错误。
    我确认"select * from [user]"是没有错的.我的目的是把缓存的DATASET更新到数据库中.这种问题如何解决,请教高手?