您的位置:首页 > 其它

关于操作Access数据报System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常问题

2005-04-29 12:58 639 查看
关于操作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 + "http://www.cnblogs.com/ForEverKissing/admin/file://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')

即可!

所以我把问题贴出来,如果有网友遇到此类问题,可以检查字段是否为关键字。

---------------------------------

看来Access的关键字还不少,感谢网友SongMeiying的总结

以下为Access数据库关键字:

-A

ADD

ALL

Alphanumeric

ALTER

AND

ANY

Application

AS

ASC

Assistant

AT

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

GROUP BY

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

Password

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

Size

SMALLINT

SOME

SQL

StDev, StDevP

STRING

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐