VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 664|回复: 4

如何更新dataset中数据?

[复制链接]

4

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-13 23:00:01 | 显示全部楼层 |阅读模式
custDA.Fill(custDS, "Customers");//完成填充后custDS发生变化后(仅修改)如何更新.用下面命令也不成功.
updateCMD.Update(custDS);   //更新数据库中所有的表
updateCMD.Update(custDS, "Customers");  //更新某个表
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-12 20:30:01 | 显示全部楼层
1.确定有Update 的命令。
2.ds.AcceptChanges();
回复

使用道具 举报

0

主题

17

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-4-14 19:45:01 | 显示全部楼层
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(custDA);
custDA.Update(ds);
回复

使用道具 举报

4

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-15 13:30:01 | 显示全部楼层
SqlConnection nwindConn = new SqlConnection(@"server=TEST\HR;database=test;uid=sa;pwd=123456");
             SqlDataAdapter dataAdpater = new SqlDataAdapter("SELECT CustomerID, Address,CompanyName FROM Customers", nwindConn);
        dataAdpater.UpdateCommand = new SqlCommand("UPDATE Customers SET CompanyName = @CompanyName " + "WHERE CustomerID = @CustomerID", nwindConn);
        dataAdpater.UpdateCommand.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 15, "CompanyName");
        SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add("@CustomerID", SqlDbType.Int);
        parameter.SourceColumn = "CustomerID";
        parameter.SourceVersion = DataRowVersion.Original;
        DataSet dataSet = new DataSet();
        dataAdpater.Fill(dataSet, "Customers");

        DataRow row = dataSet.Tables["Customers"].Rows[0];
        row["CompanyName"] = "New 1111CompanyName";
        dataSet.AcceptChanges();

        DataRow row1 = dataSet.Tables["Customers"].Rows[1];
        row1["CompanyName"] = "New 12211CompanyName";

        dataAdpater.Update(dataSet, "Customers");
      
      
               ////显示数据
        Label1.Text = dataSet.Tables["Customers"].Rows[0]["CompanyName"].ToString();
        Label2.Text = dataSet.Tables["Customers"].Rows[0]["CustomerID"].ToString();
        Label3.Text = dataSet.Tables["Customers"].Rows[1]["CompanyName"].ToString();
        Label4.Text = dataSet.Tables["Customers"].Rows[1]["CustomerID"].ToString();

执行后显示错误为:"违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。"

因为我想同时多条改动的记录,不知可不可以.
回复

使用道具 举报

4

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-15 21:45:02 | 显示全部楼层
bastard  你的那一段我不懂,我原来代码是没错的,只是CustomerID不能为空,开始没看数据库.为空时报那个错:"违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条".
回答我问题的辛苦了.谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表