我正在做一个需要防止在数据库中插入双用户名的项目,我的代码如下所示:
Command = New MySqlCommand("Select * From userscanner", Connection)
Command.ExecuteNonQuery()
Dim dr As MySqlDataReader
dr = Command.ExecuteReader
With dr
.Read()
Dim check As String = .Item(1)
.Close()
If check = txtbox_username.Text Then
MsgBox("Username Already Taken")
Exit Sub
我的问题是它只有 1 列,还是有任何其他方法可以防止我的数据库中出现双重用户名?
我需要我的用户名列中的所有列。我正在使用 VB 和 MySQL。
最佳答案
你应该询问你的数据库一个特定的用户名是否存在。 这可以通过 WHERE 来完成子句
Dim sqlText = "SELECT 1 FROM userscanner WHERE username = @name"
Using Command = New MySqlCommand(sqlText, Connection)
Command.Parameters.Add("@name", MySqlDbType.VarChar).Value = txtbox_username.Text
Dim result = Command.ExecuteScalar()
if result IsNot Nothing Then
MsgBox("Username Already Taken")
End If
End Using
这里我假设名为 userscanner
的数据库表有一个名为 username
的字段(您的代码使用 Item(1) 检索的字段),您在其中存储用户名.添加 WHERE 条件并在有记录时简单返回 1 允许使用简单的 ExecuteScalar如果有与您的文本框值匹配的记录,则返回值 1;如果没有记录,则返回 Nothing
关于MySQL 向变量中插入一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569633/