Как импортировать mysql таблицы с данными через odb c и vb.net - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю с данными, которые необходимо обновить из стороннего источника. Моя проблема в том, что мне нужно, чтобы моя программа автоматически делала это из соединения odb c. я получаю ошибку;

это очень большой файл, но он помещается в строку. Запрос 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

1 Ответ

0 голосов
/ 05 апреля 2020

Я вижу, что это происходит примерно так:

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

Если в файле есть утверждения, которые не нравятся ODB C, то это еще одна проблема, и нам нужно будет увидеть некоторые пример содержимого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...