2013-05-12 94 views
0

過程如下防止DataGridView中

從textboxs輸入記錄datagridview的,然後到數據庫

時將數據輸入到文本框和火的的Click事件中輸入數據到datagridview的按鈕重複記錄的存在進入

約束檢查是輸入的ID。已經存在或沒有..?該代碼是

For i = 0 To DataGridView1.Rows.Count - 1 
     If txt_id.Text = DataGridView1.Rows(i).Cells("id").Value.ToString Then 
      MessageBox.Show("record already exist") 
     End If 
    Next 

對接拋出異常的NullReferenceException

爲什麼當它第一次檢查存在在行(i).cells沒有記錄( 「ID」)

如何解決這個問題.....?

+0

DataGridView1.AllowUserToAddRows =假 有 – 2013-05-12 14:57:52

+0

你嘗試這裏描述的'RowsAdded'事件讀取數據的任何其他機制:HTTP:// MSDN。 microsoft.com/en-us/library/system.windows.forms.datagridview.rowsadded.aspx – Saravanan 2013-05-12 15:00:20

+0

此事件在將新行添加到DataGridView之後發生但我們檢查從文本框到數據流(此處爲檢查約束)之間的約束, datagridview因爲我們檢查所有其他約束,所以我們綁定在那裏。 – 2013-05-12 15:09:16

回答

0

試試這個..

If Datagridview1.rows.count > 0 then 
    For i = 0 To DataGridView1.Rows.Count - 1 
     If txt_id.Text = DataGridView1.Rows(i).Cells("id").Value.ToString Then 
      MessageBox.Show("record already exist") 
     End If 
    Next 
End if 
+0

它也拋出異常nullreferenceexception我發現唯一的解決方案是DataGridView1.AllowUserToAddRows = false – 2013-05-13 01:16:06

+0

因爲你的問題是.. **爲什麼當它第一次檢查沒有記錄** ..並且你有檢查例程.. – matzone 2013-05-13 01:20:34

+0

我的意思是我檢查數據前去datagridview約束 – 2013-05-13 01:47:40