#mysql #vb.net #visual-studio
#mysql #vb.net #visual-studio
Вопрос:
Я очень новичок в Visual Basic (использую Visual Studio 2010). Я просто провожу несколько тестов для подключения к базе данных mysql.
Я не знаю, как вызвать эти значения после того, как я сделал sql-запрос.
Как мне это сделать, то есть отобразить значения в метках формы?
Код:
Imports MySql.Data.MySqlClient
Public Class Form1
Dim ServerString As String = "Server = localhost; User Id = root; database = CALIBRA"
Dim SQLConnection As MySqlConnection = New MySqlConnection
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SQLConnection.ConnectionString = ServerString
Try
If SQLConnection.State = ConnectionState.Closed Then
SQLConnection.Open()
MsgBox("Successfully connected to MySQL database.")
Else
SQLConnection.Close()
MsgBox("Connection is closed.")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Public Sub calibra_query(ByRef SQLStatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLStatement
.CommandType = CommandType.Text
.Connection = SQLConnection
.ExecuteNonQuery()
End With
SQLConnection.Close()
MsgBox("Records Successfully Retrieved")
SQLConnection.Dispose()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SQLStatement As String = "SELECT Auto1, Auto2, TotalWeight FROM txticket WHERE TicketCode = '12210'"
calibra_query(SQLStatement)
Dim Automobile1, Automobile2, TotalWgt As Long
SOMETHING MISSING HERE
SOMETHING MISSING HERE
Label2.Text = Automobile1.ToString()
Label2.Text = Automobile2.ToString()
Label2.Text = TotalWgt.ToString()
End Sub
End Class
Что мне добавить в «ЗДЕСЬ ЧЕГО-ТО НЕ ХВАТАЕТ»? Большое спасибо.
Ответ №1:
Вам понадобится средство чтения данных, чтобы прочитать содержимое того, что возвращается из sql-запроса. Ваш вспомогательный запрос calibra_query выполняет функцию nonreader, которая не собирается делать то, что вам нужно. Вы хотите использовать executeNonReader только для того, для чего вам не нужен результат. (Например, инструкция Update)
Вы хотите что-то более похожее на это:
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLStatement
.CommandType = CommandType.Text
.Connection = SQLConnection
End With
Dim myReader as MySqlDataReader = myCommand.ExecuteReader
If myReader.Read Then
TextBox1.Text = myReader.GetString(0)
TextBox2.Text = myReader.Getstring(1)
TextBox3.Text = myReader.GetInt32(2)
End If
myReader.Close()
SQLConnection.Close()
MsgBox("Records Successfully Retrieved")
SQLConnection.Dispose()
Я предполагаю типы 3 полей в вашем запросе и просто выводю его в текстовые поля, чтобы дать вам представление. Это также предполагает, что в результате вы получите только одну запись.
(Редактировать: для исправления форматирования)
Комментарии:
1. большое спасибо. Просто изучаю этот язык. Я отформатирую это так, как мне нужно, но у меня такая ошибка ‘myCommand’ не объявлен