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个用户名,我将非常感激。
答案 0 :(得分:0)
在字段 Uname 上添加(或更确切地说:缺少的)唯一索引。
然后在尝试插入副本时捕获并处理错误。
答案 1 :(得分:0)
将UNAME设为主键 并在代码中放入try catch