我有一个窗体,窗体的第一页上的两个字段组成主键。我想在尝试插入记录之前检查重复值,因为我不希望用户通过表单完全查找他们无法提交的内容。所以我试图在用户试图去到表单的下一页时检查重复值。我不太确定该怎么做,当然我得到一个错误。 (“对象引用未设置为对象的实例”)。问题显然在我的if语句中,“如果myValue.Length> 0 Then”,但我不确定需要替代的是什么。尝试插入前检查重复值(ASP.NET)
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
'get values
Dim checkPrefix = txtCoursePrefix.Text
Dim checkNum = txtCourseNum.Text
'db connectivity
Dim myConn As New OleDbConnection
myConn.ConnectionString = AccessDataSource1.ConnectionString
myConn.Open()
'select records
Dim mySelect As New OleDbCommand("SELECT prefix, course_number FROM tableCourse WHERE prefix='checkPrefix' AND course_number='checkNum'", myConn)
'execute(Command)
Dim myValue As String = mySelect.ExecuteScalar()
'check if record exists
If myValue.Length > 0 Then
CustomValidator1.ErrorMessage = "some exp text"
CustomValidator1.SetFocusOnError = "true"
CustomValidator1.IsValid = "false"
End If
End Sub
以为我会发布最终的解决方案:
'select records
Dim mySelect As New OleDbCommand("SELECT 1 FROM tableCourse WHERE prefix=? AND course_number=?", myConn)
mySelect.Parameters.AddWithValue("@checkPrefix", checkPrefix)
mySelect.Parameters.AddWithValue("@checkNum", checkNum)
'execute(Command)
Dim myValue = mySelect.ExecuteScalar()
'check if record exists
If myValue IsNot Nothing Then
CustomValidator1.SetFocusOnError = True
args.IsValid = False
End If
什么是数据库? – 2011-04-14 23:07:49
@zespri Microsoft Access。 – Sara 2011-04-14 23:19:49