SQL调用中缺少分号(如果存在)

SQL调用中缺少分号(如果存在),sql,vb.net,Sql,Vb.net,我试图将多条记录写入一个dbase 3文件,但收到一个错误,说我需要一个分号,而我已经有了一个分号 SQLCreateCommand = "CREATE TABLE Test (Val1 TEXT(5), Val2 TEXT(5))" SQLCreateCommand = SQLCreateCommand.Replace("'", "") Dim dBaseCommand2 As New System.Data.OleDb.OleDbCommand(SQLCreateComma

我试图将多条记录写入一个dbase 3文件,但收到一个错误,说我需要一个分号,而我已经有了一个分号

SQLCreateCommand = "CREATE TABLE Test (Val1 TEXT(5), Val2 TEXT(5))"
    SQLCreateCommand = SQLCreateCommand.Replace("'", "")

    Dim dBaseCommand2 As New System.Data.OleDb.OleDbCommand(SQLCreateCommand, dBaseConnection)
    dBaseCommand2.ExecuteNonQuery()

    SQLCreateCommand = "INSERT INTO test (Val1,Val2) VALUES ('Joe','Joe'),('Jim','Jim');"
    dBaseCommand2.CommandText = SQLCreateCommand
    dBaseCommand2.ExecuteNonQuery()
这是我的测试代码,主要是获取一个datatable并将其转换为dbf文件,但这是尝试一次写入多行的测试行,尝试提高速度

编辑:replace命令是项目另一部分的遗留代码,应该在复制/粘贴时保留注释


缺少分号的错误只发生在插入记录的第二行,程序在创建没有分号的表时没有问题。

在insert语句中,您似乎试图同时插入两条记录。您无法使用“插入到…”执行此操作。。。价值观你需要把它分成两个语句

INSERT INTO test (Val1,Val2) VALUES ('Joe','Joe');
INSERT INTO test (Val1,Val2) VALUES ('Jim','Jim');

这是关于什么的:SQLCreateCommand.Replace'?似乎是一种非常错误的查询参数解释方法。另外:第2条语句有一个分号。第一种情况并非如此。看起来调用也可能以相反的顺序发生。DB引擎将确定首先执行哪个SQL。先入为主并不总是意味着先执行。因此,可以在创建之前尝试插入…命令按顺序执行,我让它们每次都使用ExecuteOnQueryMultiple record insert调用SQL Server 2008支持。你在用什么数据库?为什么不?根据SQL,我应该能够插入到。。。值设置1,set2@KnightsOfTheRounOP声明他正在使用dBase III。我试着用谷歌搜索它,但我找不到任何说明dBase III支持这一点的内容。如果是这样,我会很高兴被证明是错误的。我已经让它一次运行一个记录了。我的问题是试图在一个ExecuteOnQuery中添加多个记录以提高速度。如果您对提高速度有任何建议,我将不胜感激。我目前正在以大约5秒的时间将100k条记录从CSV文件运行到数据表中,然后将该数据表输出到dbf。我已经展示了这个过程,对于100k条记录,一些循环大约需要8分钟。@KnightsOfTheRoun我对dBase不是很熟悉。我相信大多数情况下,您应该能够用分号分隔这两个语句,并将它们作为一个命令发送。尝试组合大量这些命令可能会导致数据库对单个命令的大小限制。你可能想问一下,这个答案不值得投否决票。和@KnightsOfTheRoun,不要改变问题。你的问题没有问任何关于10万张唱片等的问题。