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";做了修改,为什么还要用上面那几句呢???
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
因为用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");
所以,要写这三句话。
- 2 回答
- 0 关注
- 396 浏览
添加回答
举报
0/150
提交
取消