关于操作Access数据报System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常问题
这两天答应朋友给他做个单机版的管理系统,所以数据库选用Access,以往的开发都是选用的SQL-Server,不过他们都是微软的,使用应该没什么问题。可是在我进行数据插入时,系统报System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常问题,仔细查看Insert语句,找不到“语法错误”,
数据库名:Grade.mdb
字段:CID char
CName char
Note char
代码如下:
#region 数据库连接
public class DBConnection
{
private OleDbConnection conn;
public OleDbConnection oleDbConn
{
get
{
string path = Directory.GetCurrentDirectory();
string connString = "provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = " + path + "//Grade.mdb";
if (conn == null)
conn = new OleDbConnection(connString);
return conn;
}
}
}
#endregion
//插入新数据
public int AddNewInfo()
{
OleDbConnection myConn = dbConn.oleDbConn;
int val = 0;
try
{
myConn.Open();
string myInsertString = "Insert Into CollegeInfo (CID, CName, Note)" +
"Values ('a11','aaa','bbb')";
OleDbCommand cmd = new OleDbCommand(myInsertString, myConn);
val = cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show("Error : " + ex.ToString());
val = -1;
}
finally
{
myConn.Close();
}
return val;
}
运行报异常,上网查了好多资料,才晓得字段Note居然时Access的关键字,而在SQL-Server中可以正常使用,郁闷,只要将Insert语句改成
Insert Into CollegeInfo (CID, CName, [Note]) Values ('a11','aaa','bbb')
即可!
所以我把问题贴出来,如果有网友遇到此类问题,可以检查字段是否为关键字。
这类错误出现得非常之多,现给出这位网友的解答