2013-09-14 8 views
3

Форма моей формы - image.VB - MySql выбрать из базы данных

При загрузке формы я хотел бы получить данные игрока, чей username находится в Label1, так что я мог бы показать его points в Label2.

Вот мой код до сих пор:

Dim conn As MySqlConnection 
conn = New MySqlConnection("server=REMOVED;Port=REMOVED; user id=REMOVED; password=REMOVED; database=REMOVED") 
Dim username As Boolean = True 
conn.Open() 
Dim sqlquery As String = "SELECT Name FROM NewTable WERE Name='" & My.Settings.Name & "';" 
Dim data As MySqlDataReader 
Dim adapter As New MySqlDataAdapter 
Dim command As New MySqlCommand 
command.CommandText = sqlquery 
command.Connection = conn 
adapter.SelectCommand = command 
data = command.ExecuteReader 
While data.Read() 
    Label1.Text = data(1).ToString 
    Label2.Text = data(3).ToString 
End While 

data.Close() 
conn.Close() 

Любая помощь будет оценена.

ответ

1

Вы должны параметризовать свой запрос, чтобы избежать инъекции sql, Using для правильного удаления объектов, Try-Catch блок для правильной обработки исключения.

Dim connString As String = "server=REMOVED;Port=REMOVED; user id=REMOVED; password=REMOVED; database=REMOVED" 
Dim sqlQuery As String = "SELECT Name, Points FROM NewTable WHERE Name = @uname" 
Using sqlConn As New MySqlConnection(connString) 
    Using sqlComm As New MySqlCommand() 
     With sqlComm 
      .Connection = sqlConn 
      .Commandtext = sqlQuery 
      .CommandType = CommandType.Text 
      .Parameters.AddWithValue("@uname", My.Settings.Name) 
     End With 
     Try 
      sqlConn.Open() 
      Dim sqlReader As MySqlDataReader = sqlComm.ExecuteReader() 
      While sqlReader.Read() 
       Label1.Text = sqlReader("Name").ToString() 
       Label2.Text = sqlReader("Points").ToString() 
      End While 
     Catch ex As MySQLException 
      ' add your exception here ' 
     End Try 
    End Using 
End Using 
+0

Спасибо, что очень помогли мне. это мой второй день, используя mysql и vb togheter. : D – WireCoder

Смежные вопросы