For..Next 不使用 vb.net 中的数据集列
For..Next not working with dataset column in vb.net
'validatation begin
'Validate User ID
Private Sub txtUid_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtUid.LostFocus
Try
Dim sel As String
sel = "SELECT uid FROM user_master"
Dim cnn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\RSMS_DB.mdf;Integrated Security=True;User Instance=True")
Dim da As New SqlDataAdapter(sel, cnn)
Dim ds As New DataSet()
da.Fill(ds)
Dim count As Integer = ds.Tables(0).Rows.Count
For i As Integer = 0 To count - 1
If ds.Tables(0).Rows(i)("uid") = txtUid.Text Then
ErrorProviderUidExist.SetError(txtUid, "User ID already exists! Please Try a Unique User ID!")
Else
ErrorProviderUidExist.SetError(txtUid, "")
ErrorProviderUidExist.Clear()
End If
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Database Failure!")
End Try
If txtUid.Text = Nothing Then
ErrorProvider1.SetError(txtUid, "User ID Required!")
Else
ErrorProvider1.SetError(txtUid, "")
ErrorProvider1.Clear()
End If
End Sub
我在 vb.net 中编写了这段代码,以使用错误提供程序生成警告。如果用户输入的用户 ID 已被使用,它会生成警告。
在数据库中,我创建了三个用户 ID,1、2 和 3。
我的问题是当我在测试时输入 1 时会产生错误,但当我输入 2 或 3 时却不会。
该代码只有在匹配最后一行时才会起作用。那是因为,如果你找到了一个匹配项,你继续测试剩余的行,它们将不匹配,所以你将清除你之前设置的错误消息。您需要做的是在找到匹配项时停止。这就是 Exit For
的目的。
'validatation begin
'Validate User ID
Private Sub txtUid_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtUid.LostFocus
Try
Dim sel As String
sel = "SELECT uid FROM user_master"
Dim cnn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\RSMS_DB.mdf;Integrated Security=True;User Instance=True")
Dim da As New SqlDataAdapter(sel, cnn)
Dim ds As New DataSet()
da.Fill(ds)
Dim count As Integer = ds.Tables(0).Rows.Count
For i As Integer = 0 To count - 1
If ds.Tables(0).Rows(i)("uid") = txtUid.Text Then
ErrorProviderUidExist.SetError(txtUid, "User ID already exists! Please Try a Unique User ID!")
Else
ErrorProviderUidExist.SetError(txtUid, "")
ErrorProviderUidExist.Clear()
End If
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Database Failure!")
End Try
If txtUid.Text = Nothing Then
ErrorProvider1.SetError(txtUid, "User ID Required!")
Else
ErrorProvider1.SetError(txtUid, "")
ErrorProvider1.Clear()
End If
End Sub
我在 vb.net 中编写了这段代码,以使用错误提供程序生成警告。如果用户输入的用户 ID 已被使用,它会生成警告。 在数据库中,我创建了三个用户 ID,1、2 和 3。
我的问题是当我在测试时输入 1 时会产生错误,但当我输入 2 或 3 时却不会。
该代码只有在匹配最后一行时才会起作用。那是因为,如果你找到了一个匹配项,你继续测试剩余的行,它们将不匹配,所以你将清除你之前设置的错误消息。您需要做的是在找到匹配项时停止。这就是 Exit For
的目的。