开发者

Simple VB Syntax to show some values from a database

Im very new to Visual Basic (using visual studio 2010). Im just doing some tests to connect to a mysql database.

I do not know how to call these values once I have made the sql query.

How do I go about this, i.e. to show the values on the labels on a form?

Code:

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

What do I put in the "SOMETHING MISSING HERE"? Much appreciation.


You will need a data reader in order to read the content of what is returned from the sql query. Your Sub calibra_query, is executing a nonreader, that isn't going to do what you need. You only want to use executeNonReader for things that you don't need a result from. (Like an Update statement for example)

You want something a bit more like this:

 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()

I am assuming the types of the 3 fields in your query, and just outputting it to text boxes to give you the idea. That also assumes that you are only going to get one record as a result.

(Edit: to fix formatting)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜