才学.NET~自己搞了一天的了,从DataSet更新回数据库!
我的数据表如下!
  表 master  列名 number (int型) 列名 string (varchar型) 
很简单,是为了自己测试!
 我先将数据取出 放入 DataSet中! SqlConnection con = new SqlConnection("server=.;database=study;uid=sa;pwd=;");
con.Open();

SqlDataAdapter sda = new SqlDataAdapter("select * from Master",con);
DataSet ds = new DataSet();
sda.Fill(ds,"Master");
Session["ds"] = ds;然后通过程序修改真中的数据! DataSet ds = (DataSet)Session["ds"];
ds.Tables[0].Rows[0][1] = "修改了";//赋值!
Session["ds"] = ds;最后更新回数据库DataSet ds = (DataSet)Session["ds"];
SqlDataAdapter sda;
SqlConnection con = new SqlConnection("server=.;database=study;uid=sa;pwd=;");
con.Open();
sda = new SqlDataAdapter("select * from Master",con);
SqlCommandBuilder sqlcmb = new SqlCommandBuilder(sda);
sda.Update(ds,"Master");
ds.AcceptChanges();
return ds;//返回更新了的数据库表运行最后一部更新时报错!提示:
对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
我才学这个,不是很懂,希望有知道的前辈帮忙看一下上面的代码,以及如何修改下,才可以将我更新的DataSet更新回数据库啊! 不胜感激!!!

解决方案 »

  1.   

    sda = new SqlDataAdapter("select * from Master",con);看看你的SQL语句,是查询而不是更新command = new SqlCommand("UPDATE t SET ... where ...");
    sda.UpdateCommand = command;
      

  2.   

    我就是不知道如何写更新~~~ update master set number=@number,string=@st where~  我就不知道如何写了~Where 如何写,一张表里面有很多条记录的,我要将 DS里面 全部更新回 数据库中,或是将修改了的更新回数据库,where 语句如何写,以及=@number 我的这些变量如何 赋值为 dataset中的值呢·一条好像也不够~有多条如何解决?
    循环?~??
      请知道的朋友就发我上面的例子给我写一小段程序吧?非常感谢!真的不知道如何操作了我!
      

  3.   

    再个主键吧pkid number stringupdate master set number=@number,string=@st where pkid=1
      

  4.   

    首先推荐用存储过程但是直接写给变量附值是 
    update master set number='"+this.TextBox2.Text+"'......