我正在处理需要从第三方来源更新的数据。我的问题是我需要允许我的程序从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
我看到它的发生更像这样。
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的语句,那是另一个问题,我们需要查看文件的一些示例内容。