【问题标题】:How to update DB from Datagridview c#如何从 Datagridview c# 更新数据库
【发布时间】:2014-07-17 12:31:50
【问题描述】:

如何从 Datagridview c# 更新数据库?我的项目适用于在 DB 中加载数据表。但无法更新到 DB 这是加载数据按钮

private void button2_Click(object sender, EventArgs e)
{
        string connectionString;

        connectionString = "Server=localhost;User Id=root; Password=1234; Database=db2; Pooling=false;CharSet=tis620;";
        connection = new MySqlConnection(connectionString);
        sda = new MySqlDataAdapter("Select * from data Where Id = '" + comp.Text.Trim() + "'", connection);

        dt = new DataTable();
        sda.Fill(dt);
        Table1.DataSource = dt;

}

和更新按钮

private void button3_Click(object sender, EventArgs e)
{

        cmdbl = new MySqlCommandBuilder(sda);

        sda.Update(dt);
        MessageBox.Show("Save data complete");

}

我关注这个剪辑Insert,Delete and Update data in database from datagridview 我做不到 对不起,我的英语说得不够好,谢谢你的回答。

【问题讨论】:

  • 更新后尝试 dt.AcceptChanges()

标签: c# mysql winforms datagridview


【解决方案1】:

假设您已配置 UpdateCommand。 更新后尝试 dt.AcceptChanges()

private void button3_Click(object sender, EventArgs e)
{

    cmdbl = new MySqlCommandBuilder(sda);

    sda.Update(dt);
    dt.AcceptChanges()
    MessageBox.Show("Save data complete");

  }

否则关注MSDN

作为最低要求,您必须设置 SelectCommand 属性才能使自动命令生成起作用。 SelectCommand 属性检索的表模式决定了自动生成的 INSERT、UPDATE 和 DELETE 语句的语法。 DbCommandBuilder 必须执行 SelectCommand 才能返回构造 INSERT、UPDATE 和 DELETE SQL 命令所需的元数据。因此,需要额外访问数据源,这可能会影响性能。要获得最佳性能,请明确指定您的命令,而不是使用 DbCommandBuilder。 SelectCommand 还必须返回至少一个主键或唯一列。如果不存在,则会生成 InvalidOperation 异常,并且不会生成命令。

【讨论】:

  • 抱歉先生,我有错误“并发冲突:UpdateCommand 影响了预期的 1 条记录中的 0 条。”从 sda.update(dt);
猜你喜欢
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
相关资源
最近更新 更多