zoukankan      html  css  js  c++  java
  • Access Insert Into 语法错误 集锦(不断更新中...)

    最近在做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

          


    作者:蓝之风
    出处:http://www.cnblogs.com/vaiyanzi/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    vi 命令
    element-ui + el-dialog + Vue.component 注册的tinymce富文本控件 第二次及以后打开dialog出现问题解决方法
    【经典数据结构】哈希表
    TCP建立连接与释放连接过程中的几个问题
    【算法题目】求二叉树中节点的最大距离
    字符串处理函数
    [LeetCode] Balanced Binary Tree
    [LeetCode] N-Queens II
    [LeetCode] N-Queens
    【linux使用】bash shell命令行常用快捷键
  • 原文地址:https://www.cnblogs.com/vaiyanzi/p/1505704.html
Copyright © 2011-2022 走看看