Привет, люди stackoverflow! Я недавно разработал простую программу vb.net, которая подключается к базе данных mysql для регистрации и входа в систему с указанными учетными данными. Я использовал этот код для регистрации своих пользователей, но я получаю и ошибка (под кодом)Почему я продолжаю получать эту ошибку mysql?
Dim insertUser As String = "INSERT INTO users(ID, username, password, email, verif)" _
& " VALUES('','" & Username.Text & "','" & Password.Text & "','" & Email.Text & "','" & currentRandString & "');"
Dim checkUsername As String = "SELECT * FROM users WHERE username='" & Username.Text & "'"
MysqlConn = New MySqlConnection()
MysqlConn.ConnectionString = mysqlconntxt4reg
MysqlConn.Open()
Dim myCommand As New MySqlCommand
myCommand.Connection = MysqlConn
myCommand.CommandText = checkUsername
myAdapter.SelectCommand = myCommand
Dim myData As MySqlDataReader
myData = myCommand.ExecuteReader
If myData.HasRows > 0 Then
MsgBox("Username Already In Use...", MsgBoxStyle.Critical, "Error")
myData.Close()
Else
myData.Close()
Dim myCommand2 As New MySqlCommand
myCommand2.Connection = MysqlConn
myCommand2.CommandText = insertUser
myAdapter.SelectCommand = myCommand2
Dim myData2 As MySqlDataReader
myData2 = myCommand2.ExecuteReader
Mail(Email.Text, currentRandString)
Me.Close()
myData2.Close()
End If
Catch myerror As MySqlException
MsgBox("Error While Connecting To Database:" & vbNewLine & vbNewLine & myerror.ToString, MsgBoxStyle.Critical, "Error")
Finally
MysqlConn.Dispose()
End Try
Я закрыл все мои DataReaders перед открытием других из них, так что я не понимаю, почему это не работает ...
Ошибка:
Я был бы признателен за любую помощь по этой теме! Thanks Rodit
Возможно, потому, что уже существует открытый DataReader, связанный с этим соединением. –
Ваш код открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) - никогда не объединяйте SQL таким образом. Вместо этого используйте параметризованные запросы. – Oded