1

我试图在 Visual Basic 2010 中从 VB.NET 连接 MySql。我想查询 db 只是为了获得一个返回,即单击按钮后对我的 proID 的响应。它成功显示连接已建立,但我似乎无法对其运行任何 sql 查询。可能出了什么问题?

这是我从即时窗口得到的错误:

A first chance exception of type 'System.InvalidOperationException' occurred in MySql.Data.dll

让我们假设按键事件中的 num 是 1001。

Public Class Form1
    Private connStr As String = "server=localhost;" & _
                "user id=root;Password=1234561;" & _
                "database = test"
    Dim num As Integer


Private Sub TextBox1_keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Dim str As String
    If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Enter) Then
        str = TextBox1.Text
        Dim splitVals As String() = str.Split(" ")
        num = splitVals(1)
    End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim query As String = "SELECT * FROM products"
    Dim con As New MySqlConnection(connStr)
    Dim cmd As New MySqlCommand(query)
    Try
        con.Open()
        MessageBox.Show("Database Connected")
        cmd.ExecuteNonQuery()
        cmd.Connection.Close()

        con.Close()
    Catch ex As Exception
        Console.WriteLine(ex.Message)
    End Try
End Sub

End Class
4

2 回答 2

1

试试这个代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim query As String = "SELECT * FROM products"
    Dim con As New MySqlConnection(connStr)
    Dim da as New MySqlDataAdapter() 
    Dim ds as New DataSet
    Try
        con.Open()
        MessageBox.Show("Database Connected")
        da=New MySqlDataAdapter(query,con)
        da.fill(ds,"products") 
        DataGridView1.DataSource=ds.Tables("products")
        con.Close()
    Catch ex As Exception
        Console.WriteLine(ex.Message)
    End Try
End Sub
于 2012-03-27T07:40:45.133 回答
0

ExecuteNonQuery用于不返回任何数据的 SQL 语句(例如,INSERT、UPDATE、DELETE)。

你想达到什么目标?如果您想从product表中获取所有记录并将其显示在 a 上datagrid,请尝试以下操作:

Using xConn as New MySqlConnection(connStr)
    Using xComm as new MySQLCommand()
        xComm.Connection = xConn
        xComm.CommandText = "SELECT * FROM products"
        Using xAdapter as new MySQLDAtaAdapter(xComm)
            Dim ds as new Dataset
            xConn.Open()
            xAdapter.Fill(ds)
            datagridview1.datasource = ds.tables(0)
        End Using
    End Using
End Using

更新 1

Dim xPrice as Integer = 0
Using xConn as New MySqlConnection(connStr)
    Using xComm as new MySQLCommand()
        xComm.Connection = xConn
        xComm.CommandText = "SELECT ProductPrice FROM products WHERE proID = @xID"
            xComm.Parameters.AddWithValue("xID", "Value Here")
            xConn.Open()
            xPrice = CInt(xComm.ExecuteScalar())
            xConn.Close
    End Using
End Using

Msgbox xPrice
于 2012-03-27T07:46:09.623 回答