如何从Datagridview c#更新数据库

时间:2014-07-17 12:31:51

标签: c# mysql winforms datagridview

如何从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 而我无法做到 对不起我的英语我说得不够好,谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

假设您已配置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异常,并且不会生成命令。