2011-07-07 116 views
2

我有一個DataGridView綁定到一個SLQ服務器CE數據庫表。添加一行DataGridView綁定到數據庫在C#

我創建了一個Add按鈕,當按下按鈕時我想向DataGridView添加一個新行,以便允許用戶將新數據插入到DataGridView中。

我也希望一旦用戶在這個新行中完成他的輸入,數據將被保存到有界數據庫中。

我曾嘗試:

dataGridView1.Rows.Add(); 

裏面的按鈕單擊事件,以便插入新行,但我得到了以下錯誤消息:

行不能以編程方式添加到DataGridView的當控件是數據綁定時的行集合

有什麼建議嗎?

回答

3

您必須將該行添加到DataTable或您用於在SQL和DataGridView之間進行接口的任何對象(換言之,您設置的對象爲dataGridView1.DataSource等於)。

例如:

// set DataSource 
dataGridView1.DataSource = dataTable1; 

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

如果你不想控制自己添加,你可以做什麼@InBetween說,並設置dataGridView1.AllowUserToAddRows爲true。

+0

DataGridView.AllowUserToAddRows已被設置爲true。我使用Table Adapter作爲DataGridView和數據庫之間的接口,但方法myTableAdapter.Rows.Add();不存在,如果我使用DataViewGrid的方法,它給了我之前發佈的錯誤。 – rfc1484

+0

你可以發佈你用來在兩者之間進行交互的代碼嗎? –

+0

希望你的意思是這樣的: 'this.animalsTableAdapter.Fill(this.animalsDataSet.Animals);' 它使用數據庫表中的數據填充DataGridView。 – rfc1484

3

您可以通過將DataGridView.AllowUserToAddRows設置爲true來允許用戶添加行。這將允許用戶添加儘可能多的新行,並編輯字段的值。

另一個選項是直接向DataGridView.DataSourceIListIListSource對象)添加新的「默認」行。它與讓用戶添加行相同,但它的優點是可以控制添加的行數(例如,用戶應只允許添加1行,在這種情況下,您可以將AllowUserToAddRows設置爲false) 。

+0

AllowUserToAddRows已經設置爲true,並且用戶確實可以添加新行(當最後一行被寫入時,在結尾處出現新的空行)。但是我想讓用戶在點擊「添加」按鈕時添加一個新行。 關於直接向DataGridView.DataSource添加一個新的默認行,它沒有一個「添加」方法,兩者都不相似,你會怎麼做? – rfc1484

+0

@ rfc1484:你的數據源是什麼? – InBetween

相關問題