让人无语的Access关键字
做毕业设计,最初考虑到方便性,在选择数据库时就用了Access(可移植性太强了),在测试时抛出了这样的错误:
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常
遍寻网上高人,说法都各不一样,不过最后还是找到了问题所在:Access保留字!
因为在数据库设计时没有考虑到列名会与Access保留字重复,遂不是很在意,结果出现如此低级错误,令人汗颜!
然而出问题的关键字也同样让人无语,因为找到问题所在时,就对着Access保留字表一一对照,可是没有重复的啊?
what a terrible thing!
那就用最笨的方法呗,宁可错杀三千,不让一人漏网!结果还真让俺找到了:position
position并没有出现在Access保留字表中,但却是Access保留字,挺让人无语的,换个名字,搞定!
附:Access保留字(很可能出现本人遇到的问题,所以还出现问题的话就只有用最笨的方法one by one了)
以下为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
NewPass
相关文档:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// Data ......
自定义数据库链接类(Access)是链接Access数据库时使用的类。
补足:Application.StartupPath.ToString是指定生成.EXE文件的路径,把数据库和执行文件存放到一起时,不管安装后在什么路径都无需特定指定。
Imports System.Data.OleDb
#Region "全局变量"
Private mTimeo ......
ACCESS数据库
1:CodeSmith选中链接类型是:ADOXSchema
2:无密码的Access链接为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\hh\db.mdb;
3:有密码的Access链接:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\hh\db.mdb;
Jet OLEDB:Database Password=1111
Sql数据库
server=192.1.1.14;User ID=test; ......
前几天在自己的笔记本上安装了OFFICE2007。今天做了一个百度友情链接检查的工具, 在连接ACCESS2007数据库的时候,使用的驱动代码为:"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("queryrecord.mdb") 。确发现提示:
Microsoft JET Database Engine 错误 ''80004005''
不可识别的数据库格式
但 ......