OleDbCommand INSERT INTO语句语法错误
本文关键字:语法 错误 语句 INTO INSERT OleDbCommand | 更新日期: 2023-09-27 18:10:45
我在INSERT INTO语句中出现语法错误,我不知道为什么。我检查了几个不同的SO问题,这些问题几乎与我的问题完全相同,在以这种方式和那种方式更改我的代码后,它仍然不工作。
var cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", oldDb);
var cnn = new OleDbConnection(cnnStr);
cnn.Open();
//make new access table
using (OleDbCommand command = new OleDbCommand())
{
command.Connection = cnn;
command.CommandText = String.Format("CREATE TABLE [{0}] ([Tag] string, [Text] string)", newTable + "_Diff");
try
{
command.ExecuteNonQuery();
}
catch
{
//table already exists
}
}
//fill access table
using (OleDbCommand command = new OleDbCommand())
{
command.Connection = cnn;
command.CommandText = String.Format("INSERT INTO [{0}] (Tag, Text) VALUES (?, ?)", newTable + "_Diff");
command.Parameters.Add(new OleDbParameter("Tag", ""));
command.Parameters.Add(new OleDbParameter("Text", ""));
for (int i = 0; i < (diffText.Length - 1); i++)
{
command.Parameters["Tag"].Value = diffTag[i];
command.Parameters["Text"].Value = diffText[i];
command.ExecuteNonQuery();
}
}
cnn.Close();
创建表工作,所以我知道我的连接没有问题,只是有一些东西不喜欢我的插入语句。
在插入命令中将文本放入方括号中,"text"是关键字
command.CommandText = String.Format("INSERT INTO [{0}] (Tag, [Text])
VALUES (?, ?)", newTable + "_Diff");
还要确保你的值包含了单引号
值 ('?','?')
希望能成功