【问题标题】:Insert values from DataGridView to MySql-Database during runtime在运行时将值从 DataGridView 插入到 MySql-Database
【发布时间】:2014-10-13 14:16:31
【问题描述】:

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

代码

   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-Database 中。

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

提前致谢!

编辑我找到了这个链接:MysqlLINK 但是示例程序仍然不起作用。

【问题讨论】:

    标签: c# mysql database datagridview


    【解决方案1】:

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

    代码

        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();
            }
        }
    

    我真的很抱歉这个问题!愿它帮助其他人!谢谢大家的时间!我不会自己删除这个讨论! :) 我希望有人会给这个答案一个很好的评价。无论如何,如果您尝试解决此问题并度过愉快的一天,谢谢您! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      相关资源
      最近更新 更多