您的位置:首页 > 编程语言 > Delphi

Access提示Insert Into 语法错误解决办法总结

2017-06-06 14:49 295 查看
这种错误的可能总结一下和大家一起分享。

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  delphi access 数据库
相关文章推荐