MySQL将列插入变量

时间:2015-04-10 19:51:26

标签: mysql vb.net

我正在开发一个项目,需要阻止在数据库中插入双用户名,我的代码如下所示:

    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。

2 个答案:

答案 0 :(得分:3)

您应该询问您的数据库是否存在特定的用户名。 这可以使用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

答案 1 :(得分:-1)

我自己找到了问题的答案。

 Command = New MySqlCommand("Select * From userscanner WHERE Username = '" & txtbox_username.Text & "'", Connection)
 Command.ExecuteNonQuery()
 Dim dr As MySqlDataReader
 dr = Command.ExecuteReader
 dr.Read()
 dr.Close()

 If dr.HasRows Then
    MsgBox("Username Already Taken")

感谢帮助人员