`
jdw
  • 浏览: 161445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Access Insert Into 语法错误

    博客分类:
  • data
阅读更多

最近在做Access的一个项目,总是莫名其妙的提示:“Insert Into 语法错误”,这样的信息总给人带来很多麻烦,有时候为了这样一个错误要找好久才能解决问题,"Insert Into 语法错误"这个提示本身包含的信息量很少,在跟踪堆栈中有找不到更详细的信息,为了避免大家在开发的过程中遇到同样的错误和困扰。通过查找和摸索把有可能出现这种错误的可能总结一下和大家一起分享。

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
    
CHARCHARACTER
    
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
    
INTINTEGER, INTEGER1, INTEGER2, INTEGER4
    
INTO
    
IS
-J
    
JOIN
-K
    
KEY
-L
    LastModified
    
LEFT
    
Level
    
Like
    LOGICAL, LOGICAL1
    
LONG, LONGBINARY, LONGTEXT
                
-M
    Macro
    Match
    
MaxMin, 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
    
StDevStDevP
    STRING
    SIZE
    
Sum
-T
    
TABLE
    TableDef, TableDefs
    TableID
    
TEXT
    TIME, 
TIMESTAMP
    
TOP
    TRANSFORM
    TRUE
    Type
-U
    
UNION
    
UNIQUE
    
update
    
USER
-V
    VALUE
    
VALUES
    
VarVarP
    
VARBINARYVARCHAR
-W
    
WHERE
    
WITH
    Workspace
-X
    Xor
-Y
    
Year
    YES
    YESNO

      

分享到:
评论

相关推荐

    net insert into语法错误详解

    这样的修改应该能确保生成的SQL语句符合Access的语法要求,从而避免“插入语句的语法错误”。 总结来说,当使用`OleDbDataAdapter`和`OleDbCommandBuilder`遇到“插入语句的语法错误”时,应检查是否涉及到数据库...

    access的SQL语法

    ### Access的SQL语法详解 #### 一、基本查询与数据操作 在Access中,SQL语法是进行数据库管理和数据检索的强大工具。以下是从标题和描述中提取的一些关键知识点: 1. **SELECT语句**:用于从数据库中检索数据。...

    access和sql语法区别详细

    Access: INSERT INTO ... SELECT ... SQL Server: INSERT INTO ... (SELECT ...) ``` 15. **Inner Join 语句**: Access 和 SQL Server 的 Join 语句结构有所不同,Access 中可能需要调整子查询的位置以保持...

    access语法大全

    ### Access语法大全:深入解析与应用 #### 一、Access SQL查询详解 Access数据库作为Microsoft Office套件的一部分,被广泛应用于小型数据管理场景。其强大的SQL语言支持使得数据查询、更新变得异常灵活与高效。...

    Access SQL语法大全

    INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2); ``` 3. **更新(UPDATE)**:用于修改现有记录的值。例如: ```sql UPDATE 表名 SET 字段1 = 新值1, 字段2 = 新值2 WHERE 条件; ``` 4. **删除(DELETE)*...

    SQL与access语法比较

    标题中的“SQL与access语法比较”指的是探讨两种不同的数据库管理系统——SQL Server和Microsoft Access中SQL(结构化查询语言)语法的异同。SQL是用于管理关系数据库的标准语言,而Access则是微软开发的一种桌面...

    VB 输入数据到ACCESS数据库

    这可以帮助我们捕获并处理可能出现的异常,比如数据库连接失败或SQL语法错误。 **5. 关闭连接** 操作完成后,记得关闭数据库连接以释放资源: ```vb conn.Close Set conn = Nothing ``` 描述中的“19AddNew”可能...

    SQL Server200, Access,mysql,Oracle 数据库语法总结

    - **数据操纵语言 (DML)**:用于插入、更新和删除数据,如 INSERT INTO、UPDATE、DELETE。 - **数据查询语言 (DQL)**:用于查询数据,如 SELECT 语句。 - **事务处理**:BEGIN TRANSACTION、COMMIT 和 ROLLBACK ...

    培训管理系统 vbaccess

    2. 数据操作:使用SQL语句在VB中执行增删改查操作,例如INSERT INTO、DELETE、UPDATE和SELECT。 3. 表单和控件:在VB中设计用户界面,如添加文本框、列表框、按钮等控件,用于数据输入和显示。 4. 查询设计:在...

    C# Microsoft Access数据库.zip

    此外,为了处理可能出现的异常,如数据库连接失败、SQL语法错误等,应确保添加适当的异常处理机制,如`try-catch`块。 通过学习和理解这个压缩包中的C#源码,开发者可以掌握如何在.NET环境中高效地操作Microsoft ...

    access sql,access支持的sql语句,JETSQL40.CHM

    2. 插入数据:INSERT INTO语句用于向表中添加新的记录。 3. 更新数据:UPDATE语句用于修改现有记录。 4. 删除数据:DELETE FROM语句用于删除表中的记录。 5. 创建表:CREATE TABLE语句用于创建新的数据库表。 6. ...

    access查询分析器

    它通过不同的颜色和样式突出显示SQL关键字、函数、表名和列名,帮助用户避免语法错误,提高代码可读性和编写效率。 3. **查询类型**:Access查询分析器支持多种类型的查询,包括: - **选择查询(SELECT Query)**...

    ACCESS 数据库

    5. **错误处理**:在编程过程中,必须考虑可能出现的错误,如数据库连接失败、SQL语法错误等,并设置适当的错误处理机制。 6. **用户界面设计**:在VC中,可以使用对话框、控件等元素创建用户界面,让用户能够直观...

    易语言ACCESS存取图片源码

    读取全缓冲区`来读取图片文件的二进制数据,然后使用SQL语句(如`UPDATE`或`INSERT INTO`)将这些数据写入BLOB字段。对于读取,使用`数据库.执行SQL`执行查询语句,获取BLOB字段内容,再用`文件.写入全缓冲区`写入到...

    .net下访问Access数据库需要注意的问题

    在这两种方法中,**方法一**是正确的写法,而**方法二**会导致SQL语法错误。这是因为`INSERT INTO`语句要求明确指定目标表名及其列名,即使是在Access这样的轻量级数据库系统中也是如此。如果不包含`INTO`关键字,...

    ACCESS数据库添加更新删除操作

    在Access数据库中,使用INSERT INTO语句可以向表中插入新的记录。基本语法如下: ``` INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...) ``` 比如,有一个名为"Students"的表,包含"ID", "Name", ...

    超级列表框批量导入Access数据库例程源码

    这意味着程序会遍历列表框中的每一项,对每一行数据构建并执行一条INSERT INTO SQL语句,将数据添加到Access数据库的相应表中。这样的方法可以极大地提高数据导入的效率,尤其是处理大量数据时。 在实际应用中,...

    VB.NET添加数据到ACCESS数据库中.rar

    6. **错误处理**:在实际编程中,必须考虑到可能出现的异常,比如数据库连接问题、SQL语法错误等。使用`Try...Catch...Finally`结构可以捕获并处理这些异常,确保程序的健壮性。 7. **安全性**:在存储密码等敏感...

    delphi 下动态创建Access数据库

    9. **错误处理**:在动态创建数据库和迁移数据的过程中,可能会遇到各种错误,如连接问题、权限问题、语法错误等。因此,编写良好的错误处理代码是非常重要的,可以使用Try-Catch结构来捕获和处理异常。 10. **代码...

Global site tag (gtag.js) - Google Analytics