2017-04-03 104 views
0
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。数据库表被称为用户,我试图把它们的列称为用户名和用户密码。我的数据库连接已经在模块中声明。我从网站(http://www.sourcecodester.com/tutorials/visual-basic-net/7258/adding-and-saving-records-access-database-using-vbnet.html)得到了所有的编码。我只是修改它以适应我的条件。如果有人能告诉我如何确保没有2个用户名保存在数据库中,我将非常感激。如何检查用户名值是否已经在Visual Basic数据库中?

回答

0

加入一个(或者说:缺少的)唯一索引 Uname

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

0

使UNAME成为主键 并在代码中放入试试catch

相关问题