我想使用 vb.net 创建一个带有 SQL 查询的表。我使用以下代码:
dBaseConnection.Open()
sql = "DROP TABLE TagSubs;" &
"CREATE TABLE TagSubs (TAGNAME varchar(79), POLLTIME varchar(6), SCALEMODE varchar(8), DEADBAND varchar(15))"
Dim dBaseCommand As New System.Data.OleDb.OleDbCommand(sql, dBaseConnection)
dBaseCommand.ExecuteNonQuery()
dBaseCommand = Nothing
dBaseConnection.Close()
出于某种原因,如果我省略该行:
"DROP TABLE TagSubs;"
应用程序第一次很好地创建了表。但是我第二次执行它时,它告诉我表已经存在并抛出一个错误。这就是为什么我添加了 drop table 部分。
对我来说不幸的是,这给了我一个适用于“DROP TABLE or DROP INDEX”的语法错误
我究竟做错了什么 ?
编辑1:
我得到的错误信息如下(大致从荷兰语翻译而来):
The instruction DROP TABLE or DROP INDEX contains a syntaxerror
视觉工作室提供的唯一帮助是:
Get general help for this exception
Wich根本没有任何帮助!
编辑2:
在史蒂夫和米奇的评论之后,我将代码更改为:
sql = "DROP TABLE IF EXISTS TagSubs"
dBaseCommand = New System.Data.OleDb.OleDbCommand(sql, dBaseConnection)
dBaseCommand.ExecuteNonQuery()
dBaseCommand = Nothing
sql = "CREATE TABLE TagSubs (TAGNAME varchar(79), POLLTIME varchar(6), SCALEMODE varchar(8), DEADBAND varchar(15))"
dBaseCommand = New System.Data.OleDb.OleDbCommand(sql, dBaseConnection)
dBaseCommand.ExecuteNonQuery()
dBaseCommand = Nothing
dBaseConnection.Close()
但是,这给出了错误:
"An invalid SQL instruction was found. DELETE,INSERT, PROCEDURE, SELECT or UPDATE was expected"