单击按钮添加新行,但不起作用

本文关键字:不起作用 新行 按钮 添加 单击 | 更新日期: 2023-09-27 18:20:49

我有一个命令按钮的代码,当按下它时,它应该向数据库中添加数据,同时更新datagridview并添加新行

 private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            cn.Open();
            cmd.CommandText = "INSERT INTO [Table](Code, Name, Price, units)VALUES('" + codeTextBox.Text + "','" + nameTextBox.Text + "','" + priceTextBox.Text + "','" + unitsTextBox.Text + "')";
            cmd.ExecuteNonQuery();
            cn.Close();
            string col1 = codeTextBox.Text;
            string col2 = nameTextBox.Text;
            string col3 = priceTextBox.Text;
            string col4 = unitsTextBox.Text;
            string[] row = { col1, col2, col3, col4 };
            tableDataGridView.Rows.Add(row);
            tableDataGridView.RowCount++;
        }catch(Exception bs)
        {
        }

结果是,文本框中的数据确实会进入数据库,当被带到新行时会更新,但行数不会增加任何想法?

单击按钮添加新行,但不起作用

您似乎正在使用DataGridView的DataSource属性。当此属性用于绑定到数据时,不能将行直接显式添加到DataGridView。您必须直接将行添加到数据源中。

您需要声明一个可以用作可绑定源的数据表或列表,然后将其绑定为DataSource

tableDataGridView.DataSource = myDataTable;
tableDataGridView.Refresh();

你能理解的最简单的方法:

使用列创建数据表:

public DataTable CreateMyTableDatasource()
       {
           DataTable dt = new DataTable("dt");
           dt.Columns.Add("col1".ToString());
           dt.Columns.Add("col2".ToString());
           dt.Columns.Add("col3".ToString());
           dt.Columns.Add("col4".ToString());
           return dt;
       }

然后使用这样的数据表:

private void button1_Click(object sender, EventArgs e)
        {
            ....
            DataRow dr;
            DataTable myDataTable = CreateMyTableDatasource();
            dr = myDataTable.NewRow();
            dr["col1"] = codeTextBox.Text;
            dr["col2"] = nameTextBox.Text;
            dr["col3"] = priceTextBox.Text;
            dr["col4"] = unitsTextBox.Text;
            myDataTable.Rows.Add(dr);
            tableDataGridView.DataSource = myDataTable;
            tableDataGridView.Refresh();
        }

但这将在tableDataGridView中只创建一行,而没有任何以前的数据,因此首先,您需要将所有以前的数据从tableDataGridView填充到数据表中,然后添加新行。我该怎么做?