2012-09-27 93 views
0

我想防止重複滾動沒有輸入數據庫與下面的代碼,但它沒有幫助,也建議如何防止這在gridview也。防止在數據庫和vb.net中的datagridview中插入重複值

If txtRollNo.Text.Trim = "" Then 
     ErrorProvider1.SetError(txtRollNo, "Roll Number is required") 
     Errorcheck = False 
     ElseIf varDuplicate = True Then 
     MessageBox.Show("Duplicate values are not allowed") 
     Else 
     ErrorProvider1.SetError(txtRollNo, "") 
    End If 


    Private Function Duplicate() As Boolean 
     Duplicate = True 
     duplicatedata = "Select Count(RollNo) from KaiyumVbStudent where RollNO = &txtRollNo.Text.Trim" 
     con = New SqlConnection(constring) 
     cmd = New SqlCommand(duplicatedata, con) 
     con.Open() 
     Dim mcount As Integer = cmd.ExecuteScalar 
     If mcount > 0 Then 
      Duplicate = True 
     Else 
      Duplicate = False 
     End If 
    End Function 

回答

0

這是更好的做法是在數據庫 重複值的情況下,添加一個唯一索引的列RollNO和捕獲異常,並處理該異常。

編輯你沒有提到你的數據庫供應商,以便在這裏是如何在SQLServer,創建唯一索引http://msdn.microsoft.com/en-us/library/ms187019.aspx

,這裏是標準的SQL

CREATE UNIQUE INDEX index_name ON table_name (column_name) 

EDIT 2之外唯一索引,也許應該也提到了唯一約束條件http://www.w3schools.com/sql/sql_unique.asp。爲了確保我不會混淆OP,UNIQUE INDEX和UNIQUE CONSTRAINT基本相同,它們達到相同的目標,它們的性能是相同的;技術上獨特的約束背後有獨特的指標。

ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name) 
+0

好的謝謝。任何建議gor gridview ?? – kkk

+0

UNIQUE INDEX也會阻止從gridview創建重複的RollNOs。 – bpgergo

相關問題