如何在单击事件时更新DataGrid

本文关键字:更新 DataGrid 事件 单击 | 更新日期: 2023-09-27 17:52:42

我有以下代码,通过调用函数additems更新数据库的按钮单击。

static DataTable additems(string itema, string itemb, string itemc, string itemd)
        {
            DataTable listitems = new DataTable();
            listitems.Columns.Add("itema");
            listitems.Columns.Add("itemb");
            listitems.Columns.Add("itemc");
            listitems.Columns.Add("itemd");
            // Add new items
            listitems.Rows.Add(itema, itemb, itemc, itemd);
            return listitems;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            // add to data grid
            dataGridView1.DataSource = additems("New text", "Almonds", "Butter", "Salt");
        }

我想用上面的代码创建新的数据网格。它可以很好地处理单个数据…但对于多数据,我如何才能达到这样的高度?

我有一个新的变量(不使用任何数据库)。每当单击button1时,这个变量需要加载到数据表中,以便它可以立即添加到datagridview1。

我需要一些概念

如何在单击事件时更新DataGrid

那么,您可以更改方法sig,为数据表接受一个新参数…

如果是null,创建一个新的表,就像你现在做的那样…如果不为空,只需在现有表

中添加新行

//简单的例子

static DataTable additems(string itema, string itemb, string itemc, string itemd, DataTable foo)
{
    DataTable listitems = foo;
    if(foo == null)
    {
       listitems = new DataTable();
       listitems.Columns.Add("itema");
       listitems.Columns.Add("itemb");
       listitems.Columns.Add("itemc");
       listitems.Columns.Add("itemd");
    }
    // Add new items
    listitems.Rows.Add(itema, itemb, itemc, itemd);
    return listitems;
}
private void button1_Click(object sender, EventArgs e)
{
    // add to data grid
    dataGridView1.DataSource = additems("New text", "Almonds", "Butter", "Salt", (DataTable)dataGridView1.DataSource); 
}

您可能还想考虑将该数据表存储在私有字段中,而不是使用(DataTable)dataGridView1.DataSource,但问题不是关于良好的编码风格;)