gpt4 book ai didi

sql - 在 vb.net 中删除表

转载 作者:行者123 更新时间:2023-12-04 05:01:01 25 4
gpt4 key购买 nike

我想使用 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

Visual Studio 提供的唯一帮助是:
Get general help for this exception 

Wich 根本没有任何帮助!

编辑2:

在 Steve 和 Mitch 发表评论后,我将代码更改为:
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"

最佳答案

假设这些命令连在一起的时候不太好理解,我会尝试将它们分开执行两个不同的查询,然后用两个不同的运行来执行两个sql命令。

仅当表存在时才应执行 DROP 表的命令。在 DBF 中,表通常包含在一个简单的操作系统文件中。因此,检查文件是否存在就足够了。

dBaseConnection.Open()
Dim dBaseCommand As New System.Data.OleDb.OleDbCommand()
dBaseCommand.Connection = dBaseConnection
if File.Exists(... insert path here .... "\TagSubs.DBF") Then
sql = "DROP TABLE TagSubs"
dBaseCommand.CommandText = sql
dBaseCommand.ExecuteNonQuery()
End If
sql="CREATE TABLE TagSubs (TAGNAME varchar(79), POLLTIME varchar(6), SCALEMODE varchar(8), DEADBAND varchar(15))"
dBaseCommand.CommandText = sql
dBaseCommand.ExecuteNonQuery()
dBaseCommand = Nothing
dBaseConnection.Close()

关于sql - 在 vb.net 中删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com