网上有个专门写的类,可以连接mysql的

解决方案 »

  1.   

    用 MYSQL ODBC 驱动, 建个 ODBC 数据数据源, 就是 DSN, 然后在 VB.NET 里,利用 ODBC 方式连接
      

  2.   

    MYSQL 的 .NET 驱动 
    http://dev.mysql.com/downloads/connector/net/1.0.html
      

  3.   

    我希望把连接字符串写在代码里
    不用在系统中建ODBC数据源
    可以吗?
      

  4.   

    可以的,
    下载地址
    http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-1.0.0-beta.zip/from/pick
      

  5.   

    Imports Microsoft.Data.Odbc
    Imports SystemModule myvb
        Sub Main()
            Try            'MyODBC 3.51 connection string
                Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
                               "SERVER=localhost;" & _
                               "DATABASE=test;" & _
                               "UID=venu;" & _
                               "PASSWORD=venu;" & _
                               "OPTION=3;"            'Connection
                Dim MyConnection As New OdbcConnection(MyConString)
                MyConnection.Open()            Console.WriteLine ("Connection State::" & MyConnection.State.ToString)
                
                'Drop
                Console.WriteLine ("Dropping table")
                Dim MyCommand As New OdbcCommand()
                MyCommand.Connection = MyConnection
                MyCommand.CommandText = "DROP TABLE IF EXISTS my_vb_net"
                MyCommand.ExecuteNonQuery()
                
                'Create
                Console.WriteLine ("Creating....")
                MyCommand.CommandText = "CREATE TABLE my_vb_net(id int, name varchar(30))"
                MyCommand.ExecuteNonQuery()
                
                'Insert
                MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(10,'venu')"    
                Console.WriteLine("INSERT, Total rows affected:" & MyCommand.ExecuteNonQuery())            'Insert
                MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(20,'mysql')"
                Console.WriteLine("INSERT, Total rows affected:" & MyCommand.ExecuteNonQuery())            'Insert
                MyCommand.CommandText = "INSERT INTO my_vb_net VALUES(20,'mysql')"
                Console.WriteLine("INSERT, Total rows affected:" & MyCommand.ExecuteNonQuery())            'Insert
                MyCommand.CommandText = "INSERT INTO my_vb_net(id) VALUES(30)"
                Console.WriteLine("INSERT, Total rows affected:" & MyCommand.ExecuteNonQuery())            'Update
                MyCommand.CommandText = "UPDATE my_vb_net SET id=999 WHERE id=20"
                Console.WriteLine("Update, Total rows affected:" & MyCommand.ExecuteNonQuery())            'COUNT(*)        
                MyCommand.CommandText = "SELECT COUNT(*) as TRows FROM my_vb_net"
                Console.WriteLine("Total Rows:" & MyCommand.ExecuteScalar())            'Select              
                Console.WriteLine ("Select * FROM my_vb_net")
                MyCommand.CommandText = "SELECT * FROM my_vb_net"
                Dim MyDataReader As OdbcDataReader
                MyDataReader = MyCommand.ExecuteReader
                While MyDataReader.Read
                    If MyDataReader("name") Is DBNull.Value Then
                        Console.WriteLine ("id = " & CStr(MyDataReader("id")) & "  name = " & _
                          "NULL")
                    Else
                        Console.WriteLine ("id = " & CStr(MyDataReader("id")) & "  name = " & _
                                              CStr(MyDataReader("name")))
                    End If
                End While
            
            'Catch ODBC Exception
            Catch MyOdbcException As OdbcException 
                Dim i As Integer
                Console.WriteLine (MyOdbcException.ToString)        'Catch program exception
            Catch MyException As Exception
                Console.WriteLine (MyException.ToString)
        End Try
        End Sub
    End Module
      

  6.   

    上面的代码 用的是 MYODBC 3.51,
    下载地址
    http://dev.mysql.com/get/Downloads/MyODBC3/MyODBC-standard-3.51.9-win.msi/from/pick