在vb.net中连接mysql

在vb.net中连接mysql,mysql,vb.net,visual-studio,connector-net,Mysql,Vb.net,Visual Studio,Connector Net,我正在尝试在VisualBasic2010中从VB.NET连接MySql。我想查询数据库,只要单击按钮,就可以得到对proID的一个返回is响应。它成功地显示连接已建立,但我似乎无法对其运行任何sql查询。可能出了什么问题 这是我从即时窗口得到的错误: A first chance exception of type 'System.InvalidOperationException' occurred in MySql.Data.dll 假设按键事件的num为1001 Public Clas

我正在尝试在VisualBasic2010中从VB.NET连接MySql。我想查询数据库,只要单击按钮,就可以得到对proID的一个返回is响应。它成功地显示连接已建立,但我似乎无法对其运行任何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
请尝试以下代码:

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
请尝试以下代码:

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

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

你想要实现什么?如果要从
产品
表中获取所有记录并将其显示在
数据网格
上,请尝试以下操作:

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

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

你想要实现什么?如果要从
产品
表中获取所有记录并将其显示在
数据网格
上,请尝试以下操作:

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

我只想从db中获取1个字段。我拿到了许可证,我想拿到价格。有可能只获取一个字段吗?我只想从db中获取一个字段。我拿到了许可证,我想拿到价格。是否可以只获取1个字段?