C# 在DataGridView中添加一行,该行绑定到C中的数据库#

C# 在DataGridView中添加一行,该行绑定到C中的数据库#,c#,.net,visual-studio-2010,datagridview,C#,.net,Visual Studio 2010,Datagridview,我有一个绑定到SLQ Server CE数据库表的DataGridView 我创建了一个Add按钮,当按下该按钮时,我想向DataGridView添加一个新行,以便允许用户将新数据插入DataGridView 我还希望,一旦用户在新行中完成输入,数据将被持久化到有界数据库中 我试过: dataGridView1.Rows.Add(); 在button click事件中插入新行,但我收到以下错误消息: 当控件为数据绑定时,无法通过编程将行添加到DataGridView的行集合中 有什么建议吗?您

我有一个绑定到SLQ Server CE数据库表的DataGridView

我创建了一个Add按钮,当按下该按钮时,我想向DataGridView添加一个新行,以便允许用户将新数据插入DataGridView

我还希望,一旦用户在新行中完成输入,数据将被持久化到有界数据库中

我试过:

dataGridView1.Rows.Add();
在button click事件中插入新行,但我收到以下错误消息:

当控件为数据绑定时,无法通过编程将行添加到DataGridView的行集合中


有什么建议吗?

您可以允许用户通过将
DataGridView.allowUserToAddress
设置为
true
来添加行。这将允许用户添加任意多的新行,并编辑字段的值


另一个选项是直接向
DataGridView.DataSource
IList
IListSource
对象)添加一个新的“默认”行。这相当于允许用户添加行,但其优点是您可以控制添加的行数(例如,用户应只允许添加一行,在这种情况下,您可以将
allowUserToAddress
设置为
false

例如:

// set DataSource
dataGridView1.DataSource = dataTable1;

// add row
dataTable1.Rows.Add();

如果您不想自己控制添加,您可以执行@InBetween所说的操作,并将
dataGridView1.AllowUserToAddress
设置为true。

DataGridView.AllowUserToAddress已设置为true。我使用TableAdapter作为DataGridView和数据库之间的接口,但方法myTableAdapter.Rows.Add();不存在,如果我在DataViewGrid中使用该方法,它会给我以前发布的错误。您可以发布用于两者之间接口的代码吗?希望您的意思是:
this.animalsTableAdapter.Fill(this.animalDataSet.Animals)
用数据库表中的数据填充DataGridView。
this.animalsDataSet.Animals
是一个DataTable,因此
this.animalsDataSet.Animals.Rows.Add()
应该可以完成这个任务。AllowUserToAddress已经设置为true,用户确实可以添加新行(当写入最后一行时,末尾会出现一个新的空行)。但我想允许用户在单击“添加”按钮时添加一个新行。关于直接向DataGridView.DataSource添加一个新的默认行,它没有“添加”方法,也没有类似的方法,您将如何做?@rfc1484:您的数据源是什么?