首页 新闻 搜索 专区 学院

SqlDataAdapter的问题

0
悬赏园豆:10 [已解决问题] 解决于 2008-11-03 17:12

  SqlConnection conn = new SqlConnection(str);
    SqlDataAdapter da = new SqlDataAdapter("SELECT order_id, contract FROM linhai", conn);
    DataSet ds = new DataSet();
    
da.Fill(ds, "linhai");

    da.UpdateCommand = new SqlCommand("UPDATE linhai SET contract = @contract WHERE order_id = @order_id" , conn);

    da.UpdateCommand.Parameters.Add("@contract", SqlDbType.NVarChar, 15, "contract");
    da.UpdateCommand.Parameters.Add("@order_id", SqlDbType.NVarChar, 15, "order_id");

    ds.Tables["linhai"].Rows[0]["contract"] = "PPP";
    da.Update(ds.Tables[0]);

 

不知道为什么要写这几句:

   da.UpdateCommand = new SqlCommand("UPDATE linhai SET contract = @contract WHERE order_id = @order_id" , conn);

    da.UpdateCommand.Parameters.Add("@contract", SqlDbType.NVarChar, 15, "contract");
    da.UpdateCommand.Parameters.Add("@order_id", SqlDbType.NVarChar, 15, "order_id");

开始填充了一个ds后 用ds.Tables["linhai"].Rows[0]["contract"] = "PPP";做了修改,为什么还要用上面那几句呢???

老海的主页 老海 | 初学一级 | 园豆:195
提问于:2008-11-03 16:43
< >
分享
最佳答案
0

因为ds.Tables["linhai"].Rows[0]["contract"] = "PPP";做了修改 只是修改了内存中的数据,没有修改数据库中的数据。

所以要用 da.Update(ds.Tables[0]); 来更新数据库中的数据。

而 da.Update(ds.Tables[0]); 这一句要正常执行的话,必须要写下面这三句话。
da.UpdateCommand = new SqlCommand("UPDATE linhai SET contract = @contract WHERE order_id = @order_id" , conn);

    da.UpdateCommand.Parameters.Add("@contract", SqlDbType.NVarChar, 15, "contract");
    da.UpdateCommand.Parameters.Add("@order_id", SqlDbType.NVarChar, 15, "order_id");

 

所以,要写这三句话。

Wayne2082 | 菜鸟二级 |园豆:225 | 2008-11-03 17:06
其他回答(1)
0

一个是更新内存数据,一个是更新数据库数据。

5yplan | 园豆:1330 (小虾三级) | 2008-11-03 17:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册