如何在visual basic中检查用户名值是否已存在于数据库中?

时间:2017-04-03 09:03:10

标签: mysql database ms-access visual-studio-2017

Private Sub SignUpBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SignUpBtn.Click
    'ttp://www.sourcecodester.com/tutorials/visual-basic-net/7258/adding-and-saving-records-access-database-using-vbnet.html
    Try

        cm = New OleDb.OleDbCommand
        With cm
            .Connection = cn
            .CommandType = CommandType.Text
            .CommandText = "INSERT INTO Users (UserName,UserPassword) VALUES (@Uname,@Pword)"



            .Parameters.Add(New System.Data.OleDb.OleDbParameter("@UserName", System.Data.OleDb.OleDbType.VarChar, 255, Me.Uname.Text))
            .Parameters.Add(New System.Data.OleDb.OleDbParameter("@UserPassword", System.Data.OleDb.OleDbType.VarChar, 255, Me.Pword.Text))

            Me.Uname.Text = MainClass.consoleout

            ' RUN THE COMMAND
            cm.Parameters("@UserName").Value = Me.Uname.Text
            cm.Parameters("@UserPassword").Value = Me.Pword.Text


            cm.ExecuteNonQuery()
            MsgBox("Record saved.", MsgBoxStyle.Information)
            Dim Form1 As New Form1
            Form1.Show()
            Hide()

            Exit Sub
        End With
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
    End Try
End Sub

我正在尝试制作此表单,并检查输入的用户名是否与数据库中的用户名相同。目前,我可以一遍又一遍地保存任何用户,并且只在数据库中重复记录。我的用户名文本框名为Uname,我的密码文本框称为Pword。数据库表名为Users,我尝试将它们放入的列称为UserName和UserPassword。我的数据库连接已在模块中声明。我从一个网站(http://www.sourcecodester.com/tutorials/visual-basic-net/7258/adding-and-saving-records-access-database-using-vbnet.html)获得了所有这些代码。我只是修改它以适应我的条件。如果有人能告诉我如何确保数据库中没有保存2个用户名,我将非常感激。

2 个答案:

答案 0 :(得分:0)

在字段 Uname 上添加(或更确切地说:缺少的)唯一索引

然后在尝试插入副本时捕获并处理错误。

答案 1 :(得分:0)

将UNAME设为主键 并在代码中放入try catch