0

我想防止使用以下代码在数据库中输入重复滚动,但这没有帮助,并且还建议如何在 gridview 中防止这种情况。

   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
4

1 回答 1

0

更好的做法是RollNO在数据库中的列上添加一个 UNIQUE INDEX 并捕获异常并在重复值的情况下处理该异常。

编辑你没有提到你的数据库供应商所以这里是如何在 SQL SERVER http://msdn.microsoft.com/en-us/library/ms187019.aspx中创建唯一索引

这是标准 SQL

CREATE UNIQUE INDEX index_name ON table_name (column_name)

EDIT 2除了 UNIQUE INDEX,也许还应该提到 UNIQUE CONSTRAINT http://www.w3schools.com/sql/sql_unique.asp。为了确保我不会混淆 OP,UNIQUE INDEX 和 UNIQUE CONSTRAINT 基本相同,它们达到相同的目标,它们的性能是相同的;从技术上讲,唯一约束背后有唯一索引。

ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column_name)
于 2012-09-27T10:26:48.000 回答