如何通过odbc和vb.net导入带有数据的mysql表

问题描述 投票:0回答:1

我正在处理需要从第三方来源更新的数据。我的问题是我需要允许我的程序从odbc连接中自动执行此操作。我得到错误;

这是一个非常大的文件,但可以放入一个字符串中。 sql查询将创建表和数据。它来自数据转储。


Dim oOpen As New OpenFileDialog
Dim oSqlCreate As New MySqlConnections
dim oSqlConn As Odbc.OdbcConnection
Dim osqlcmd As New Odbc.OdbcCommand
Dim sr As StreamReader
Dim sql As String
Dim newFile As String
    oSqlConn = oSqlCreate.OpenEstConn()
    osqlcmd.Connection = oSqlConn
    oOpen.DefaultExt = ".sql"
    If oOpen.ShowDialog() <> DialogResult.OK Then Exit Sub
        Try
            sr = New StreamReader(oOpen.FileName)
            newFile = sr.ReadToEnd()
            sql = "drop database VCDB"
            osqlcmd.CommandText = sql
            osqlcmd.ExecuteNonQuery()
            sql = "Create database VCDB"
            osqlcmd.CommandText = sql
            osqlcmd.ExecuteNonQuery()
        Catch ex As Exception
            MsgBox("Drop or Create failed with the following error:" & ex.Message)
            Exit Sub
        End Try



newFile = "use VCDB; " & newFile
osqlcmd.CommandText = newFile
'error below
osqlcmd.ExecuteNonQuery()


GetVersions()

MsgBox("Import Complete.")

错误代码:

System.InvalidOperationException HResult=0x80131509 Message=The connection has been disabled. Source=System.Data Inner Exception 1: OdbcException: ERROR [08S01] [MySQL][ODBC 8.0(a) Driver][mysqld-8.0.19]MySQL server has gone away
mysql sql vb.net
1个回答
0
投票

我看到它的发生更像这样。

Private Sub DropAndCreateDB()
    Using cn As New OdbcConnection("Your connection string"),
            cmd As New OdbcCommand()
        cmd.Connection = cn
        cmd.CommandText = "Drop Database VCDB"
        cn.Open()
        cmd.ExecuteNonQuery()
        cmd.CommandText = "Create database VCDB"
        cmd.ExecuteNonQuery()
    End Using
    CreateTablesAndAddData()
End Sub

Private Sub CreateTablesAndAddData()
    Using cn As New OdbcConnection("Your connection string"),
            cmd As New OdbcCommand("use VCDB; " & ReadFile(), cn)
        cn.Open()
        cmd.ExecuteNonQuery()
    End Using
End Sub

Private Function ReadFile() As String
    Dim oOpen As New OpenFileDialog
    oOpen.DefaultExt = ".sql"
    Return File.ReadAllText(oOpen.FileName)
End Function

如果文件中存在不喜欢ODBC的语句,那是另一个问题,我们需要查看文件的一些示例内容。

© www.soinside.com 2019 - 2024. All rights reserved.