当用户编辑要添加到数据库的新行时,Datagridview中的默认不可编辑值

时间:2014-10-23 23:44:50

标签: c# datagridview

我想使用datagridview让用户编辑MYSQL DB中的某些列。我开始用一张空桌子。所以如果:

...
connection.Open();
mySqlDataAdapter = new MySqlDataAdapter("SELECT * FROM `expenses` ", connection);
connection.Close();
DataSet DS = new DataSet();
mySqlDataAdapter.Fill(DS);
dataGridView1.DataSource = DS.Tables[0];
...

给我一​​个datagridview,其中包含顶部的所有正确的col名称和一个空行,在这个空行的最左边有一个> *如果我开始编辑这一行中的一个单元格,那么左边现在变成一个铅笔图标和第二个新的" proto"行显示在下方,最左边只有一个*。这没关系,我认为这是标准行为。

我的问题是如何在这些"空"的几个列中始终显示和强制执行默认值。和" proto" (不知道描述这些行的正确术语)。我不知道如何以编程方式访问这些行/单元格。最重要的是,我在用户编辑新行时在某些单元格中拥有/看到不可编辑的值。

然后用户编辑我可编辑的cols。并且,作为结果的新行将添加到数据视图中。接下来,实际上将行添加到数据库表中,但我想知道是否可以先完成此操作。

1 个答案:

答案 0 :(得分:0)

使用DefaultValuesNeeded事件

private void dataGridView1_DefaultValuesNeeded(object sender,
    System.Windows.Forms.DataGridViewRowEventArgs e)
{
    e.Row.Cells["Region"].Value = "WA";
    e.Row.Cells["City"].Value = "Redmond";
    e.Row.Cells["PostalCode"].Value = "98052-6399";
    e.Row.Cells["Country"].Value = "USA";
    e.Row.Cells["CustomerID"].Value = NewCustomerId();
}

了解更多信息 http://msdn.microsoft.com/en-us/library/b22t666e%28v=vs.90%29.aspx