У меня есть оператор SQL, который сохраняет имя пользователя в базу данных MySQL на PHPMyAdmin, которая работает как шарм:Инструкция MySQL для сохранения пароля в базе данных?
Dim SQLStatement As String = "INSERT INTO accountinfodb(`Usernames`) VALUES ('" & txtUsername.Text & "')"
Однако
Я также запрашивать пароль пользователей, которые я хотели бы хранить, так что я, хотя это имело бы смысл:
Dim SQLStatement As String = "INSERT INTO accountinfodb(`Usernames`, `Passwords`) VALUES ('" & txtUsername.Text & txtPasswd.Text & "')"
к сожалению, этот код не работает, я получаю ошибки о в крышкой и открытым соединением, или синтаксической ошибкой в синтаксисе MySQL. Поэтому мне было интересно, знает ли кто-нибудь правильный способ сохранить имя пользователя и пароль в моей БД?
Вот мой FULL код vb.net.
Imports MySql.Data.MySqlClient
Public Class frmSignup
Dim ServerString As String = "Server=localhost;User Id=root;Password=;Database=accountinfo"
Dim SQLConnection As MySqlConnection = New MySqlConnection
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SQLConnection.ConnectionString = ServerString
Try
If SQLConnection.State = ConnectionState.Closed Then
SQLConnection.Open()
MsgBox("Successfully connected to DB")
Else
SQLConnection.Close()
MsgBox("Failed to connect to DB")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Public Sub SaveAccountInformation(ByRef SQLStatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLStatement
.CommandType = CommandType.Text
.Connection = SQLConnection
.ExecuteNonQuery()
End With
SQLConnection.Close()
SQLConnection.Dispose()
End Sub
Private Sub btnSignup_Click(sender As Object, e As EventArgs) Handles btnSignup.Click
If txtPasswd.Text = txtPasswd2.Text Then
MessageBox.Show("Passwords Match!")
Dim SQLStatement As String = "INSERT INTO accountinfodb(`Usernames`, `Passwords`) VALUES ('" & txtUsername.Text & txtPasswd.Text & "')"
SaveAccountInformation(SQLStatement)
MessageBox.Show("Account Successfully Registered")
Else
MessageBox.Show("Passwords Do Not Match!")
txtPasswd.Text = Focus()
txtPasswd.Clear()
txtPasswd2.Text = Focus()
txtPasswd2.Clear()
End If
End Sub
End Class
EDIT 1
@Rahul
Я добавил ваш SQL заявление, мой код, и я дал следующее сообщение об ошибке, когда я ввод случайное имя пользователя/пароль
необработанное исключение типа «MySql.Data.MySqlClient.MySqlException» произошло в MySql.Data.dll
Дополнительная информация: У вас возникла ошибка в синтаксисе SQL; проверить инструкцию, которая соответствует вашей версии сервера MariaDB для корректного синтаксиса использовать вблизи «тест»)»в строке 1
Google для операторов SQL с параметрами по многим причинам –
@SirRufo Можете ли вы по крайней мере объяснить, почему мой SQL заявление не работает? – Jcrow
Вы обещаете детали БД 2, затем приклейте два предмета вместе и только отправьте их; это синтаксическая ошибка. Используйте SQL-параметры и то, что вы делаете, намного яснее (и это не сработает, если имя пользователя «D'Angelo» ... или что еще хуже). Вы не открываете соединение, так что это другая ошибка. – Plutonix