c# - 在运行时将值从 DataGridView 插入到 MySql 数据库

标签 c# mysql database datagridview

我的 DataGridview 出现问题:我可以通过按下带有以下代码的按钮在 MySql 数据库中保存一些值:

代码

   private void button8_Click(object sender, EventArgs e)
    {
        string connStr = "datasource=localhost;port=3306;username=root;password=123";
        MySqlConnection conn = new MySqlConnection(connStr);

        try
        {
            string sql = "select *from test.edata ;";
            MySqlDataAdapter da = new MySqlDataAdapter(sql,conn);
            MySqlCommandBuilder cb = new MySqlCommandBuilder(da);

            MySqlCommand cmd = new MySqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = sql;

            MySqlCommand insertCmd =cb.GetInsertCommand().Clone();
            insertCmd.CommandText = insertCmd.CommandText +";SELECT last_insert_id() AS id";
            insertCmd.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
            da.InsertCommand = insertCmd;
            cb.DataAdapter = null;

            DataTable dt = new DataTable();
            da.Fill(dt);

            DataRow row = dt.NewRow();
            row["Familienname"] = "Mustermann";
            row["Eid"] = "1";
            row["Vorname"] = "Max";
            row["age"] = "20";
            dt.Rows.Add(row);
            da.Update(dt);

            conn.Close();




        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

问题:每当表单关闭或按下按钮时,我是否可以将完整的 DataGridView 保存在数据库中?我不想用我的代码插入这些值。应从单元格中读取值。因此,用户可以更改 UI 上的某些内容,如果他关闭表单,Gridview 将保存在 MySql 数据库中。

我知道这个网站不是一个“为我编码”的网站,但我确信有一种方法可以在我的 MySql 数据库中插入所有值!

提前致谢!

编辑我找到了这个链接:MysqlLINK但示例程序仍然无法运行。

最佳答案

好吧,我几乎解决了这个问题:

代码

    private void dgv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        string id = dt.Rows[e.RowIndex]["Eid"] + "";
        string col = dt.Columns[e.ColumnIndex].ColumnName;
        string data = dgv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value + "";
        string sql = string.Format("UPDATE `test`.`edata` SET `{0}` = '{1}' WHERE Eid = {2};", col, data, id);

        using (MySqlConnection conn = new MySqlConnection("datasource=localhost;port=3306;username=root;password=123"))
        {
            conn.Open();
            using (MySqlCommand cmd = new MySqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
            }
            conn.Close();
        }
    }
    private void Form4_Load(object sender, EventArgs e)
    {
        dt = new DataTable();
        using (MySqlConnection conn = new MySqlConnection("datasource=localhost;port=3306;username=root;password=123"))
        {
            conn.Open();
            using (MySqlCommand cmd = new MySqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = "select *from test.edata ;";
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                da.Fill(dt);
            }
            conn.Close();
        }

        dgv1 = new DataGridView();
        dgv1.AllowUserToAddRows = true;
        dgv1.CellEndEdit += new DataGridViewCellEventHandler(dgv_CellEndEdit);
        dgv1.CellValidating += new DataGridViewCellValidatingEventHandler(dgv_CellValidating);
        dgv1.Dock = DockStyle.Fill;
        dgv1.DataSource = dt;
        this.Controls.Add(dgv1);
    }
}


    private void dgv_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        InitializeComponent();
        if (e.ColumnIndex == 0)
        {
            dgv1.CancelEdit();
        }
    }

对于这个问题我真的很抱歉!愿它能帮助另一个人!感谢大家抽出宝贵的时间!我不会删除我自己的讨论! :) 我希望有人会对这个答案给予好评。无论如何,谢谢您,如果您尝试解决这个问题并祝您有愉快的一天! :)

关于c# - 在运行时将值从 DataGridView 插入到 MySql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26342161/

相关文章:

database - 使用 dbms_sql.parse 执行包含在 clob 中的 sql 语句

c# - Mailkit 身份验证失败

c# - 让 EntityFramework 尊重 mysql max_user_connections

c# - 将 IHttpContextAcessor 注入(inject)到 Controller 操作内的绑定(bind)模型中

php - 如何按其他表中的最新记录对记录进行排序

java - 交易对象在异常情况下有什么值(value)。?

ruby-on-rails - 何时向 user_posts 表添加记录以跟踪 'likes'

c# - 根据控件动态改变光标

mysql - 将 "IN"替换为 JOIN 语句

php - 在 MySQL 表中使用字符串作为 ID 可以吗?