Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# insert into mdb中的语法错误_C#_Sql_Visual Studio 2010_Ms Access_Ms Access 2007 - Fatal编程技术网

C# insert into mdb中的语法错误

C# insert into mdb中的语法错误,c#,sql,visual-studio-2010,ms-access,ms-access-2007,C#,Sql,Visual Studio 2010,Ms Access,Ms Access 2007,我在c#中将INSERT的字符串写入mdb文件,但代码中捕获了错误“INSERT-into-station中的语法错误”。 我直接在Microsoft Access 2007中测试字符串,并且插入的查询没有错误 string qu = "INSERT INTO Reports ( docid, biopsy, normal, section, subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation'

我在c#中将
INSERT
的字符串写入mdb文件,但代码中捕获了错误“INSERT-into-station中的语法错误”。
我直接在Microsoft Access 2007中测试字符串,并且插入的查询没有错误

string qu = "INSERT INTO Reports ( docid, biopsy, normal, section, subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');";
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
OleDbConnection con = Model.getDataConnection();

cmd.Connection = con;
cmd.CommandText = qu;
con.Open();
try
{
    cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    System.Windows.Forms.MessageBox.Show("data error!\n" + ex.Message);
    return false;
}

在进行错误编辑之前,显示正确括号的原始字符串

string qu = "INSERT INTO Reports ( docid, biopsy, normal, [section], subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', '', 'Injection', '', '');";
报告、节和文本都是。将它们括在SQL语句的括号中

INSERT INTO [Reports] (
    docid, biopsy, normal, [section], subsection, title, items, [text])
VALUES (
    21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');

我认为问题在于“空”字符。字符不能为空,但大小固定。尝试使用空字符串或“\0”作为空字符。我已经创建了一个测试项目,复制了您的代码,创建了一个测试数据库,在我这方面,它就像一个符咒一样工作,即使使用“”和与您相同的字段名……我对一个测试数据库运行了完全相同的查询,并且它工作正常。我怀疑您在其中一个字段上的数据类型与您想象的不同。此处:
string sql=“创建表报告(docid计数器主键,活检是否,正常是否,[节]文本,小节文本,标题文本,项文本,[文本]文本);”
BTW
text
几乎是您可以为访问字段选择的最差名称之一。您确定这两种情况下的数据库都是相同的吗?您没有复制到项目文件夹?错误的编辑误导了您。注意,有两个人测试了这个查询。