这种错误的可能总结一下和大家一起分享。
1.关键字:如果你的数据库的表的设计包含了Access包含的关键字,则在插入的时候会出现“Insert Into 语法错误”
例如:
string sqlText = String.Format("Insert into TestTable(Id,Order) values ({0},{1})",123,0);
这行上面这条语句是失败的,原因是TestTable表中有一个关键字"Order",解决办法:
(1).将语句中的关键字用[order]处理就可以了。如:
string sqlText = String.Format("Insert into TestTable(TestId,[Order]) values ({0},{1})",123,0);
(2).将所有的字段都用[]括起来,这在许多代码生成器中都采用这种方式来解决关键字的冲突问题。如:
string sqlText = String.Format("Insert into TestTable([Id],[Order]) values ({0},{1})",123,0);
(3).在设计数据库的时候尽量避免使用Access本身的保留字。这样就不会出现应为关键字问题引起的错误了,这也是最佳的解决方法。
2.文本类型:字符类型引起的“Insert Into 语法错误”,通常是因为数据库设计的时候字段是字符型的,结果在Insert into 的时候字段值没有加''引起的。
例如:
string sqlText = String.Format("Insert into TestTable(TestId,TestName) values ({0},{1})",123,”cnblogs");
说明:
Test 是数字型字段,TestName 是文本型字段
上面的操作会出现:“Insert Into 语法错误”
解决方法:在操作的时候给 Name字段的值加上''可解决问题,如:
string sqlText = String.Format("Insert into TestTable(TestId,TestName) values ({0},‘{1}’)",123,”cnblogs");
3.备注类型:备注类型的字段和文本字段一样,碰到问题,可以用同样的方法解决
4.日期/时间类型:日期/时间类型的字段和文本字段一样,碰到问题可以用同样的解决方法
Access 数据库的关键字:
-A ADD ALL Alphanumeric ALTER AND ANY Application AS ASC Assistant AUTOINCREMENT Avg -B BETWEEN BINARY BIT BOOLEAN BY BYTE -C CHAR, CHARACTER COLUMN CompactDatabase CONSTRAINT Container Count COUNTER CREATE CreateDatabase CreateField CreateGroup CreateIndex Createobject CreateProperty CreateRelation CreateTableDef CreateUser CreateWorkspace CURRENCY CurrentUser -D DATABASE DATE DATETIME delete DESC Description DISALLOW DISTINCT DISTINCTROW Document DOUBLE drop -E Echo Else End Eqv Error EXISTS Exit -F FALSE Field, Fields FillCache FLOAT, FLOAT4, FLOAT8 FOREIGN Form, Forms FROM Full FUNCTION -G GENERAL Getobject GetOption GotoPage GROUP GROUPBY GUID -H HAVING -I Idle IEEEDOUBLE, IEEESINGLE If IGNORE Imp IN INDEX Index, Indexes INNER INSERT InsertText INT, INTEGER, INTEGER1, INTEGER2, INTEGER4 INTO IS -J JOIN -K KEY -L LastModified LEFT Level Like LOGICAL, LOGICAL1 LONG, LONGBINARY, LONGTEXT -M Macro Match Max, Min, Mod MEMO Module MONEY Move -N NAME NewPassword NO Not Note NULL NUMBER, NUMERIC -O object OLEobject OFF ON OpenRecordset OPTION OR ORDER Orientation Outer OWNERACCESS -P Parameter PARAMETERS Partial PERCENT PIVOT PRIMARY PROCEDURE Property -Q Queries Query Quit -R REAL Recalc Recordset REFERENCES Refresh RefreshLink RegisterDatabase Relation Repaint RepairDatabase Report Reports Requery RIGHT -S SCREEN SECTION SELECT SET SetFocus SetOption SHORT SINGLE SMALLINT SOME SQL StDev, StDevP STRING SIZE Sum -T TABLE TableDef, TableDefs TableID TEXT TIME, TIMESTAMP TOP TRANSFORM TRUE Type -U UNION UNIQUE update USER -V VALUE VALUES Var, VarP VARBINARY, VARCHAR -W WHERE WITH Workspace -X Xor -Y Year YES YESNO
