VB.NET学习笔记:ADO.NET操作ACCESS数据库——书写SQL语句时处理系统关键字如DEFAULT、ON、position等
发布日期:2021-06-29 11:32:13 浏览次数:2 分类:技术文章

本文共 2152 字,大约阅读时间需要 7 分钟。

一、默认值和级联更新删除关键字DEFAULT和ON

DEFAULT和ON是MS ACCESS SQL系统关键字,SQL语句中如果含有系统关键字,在ACCESS界面是无法执行的。如下SQL语句:

Create TABLE periodtbl(PDID AUTOINCREMENT,PDname text(10) NOT NULL,CONSTRAINT pk_periodtbl_PDID PRIMARY KEY (PDID),CONSTRAINT UQ_periodtbl_PDname UNIQUE (PDname));

Create TABLE studenttbl(STUID AUTOINCREMENT,STUname text(20) DEFAULT '请录入姓名',,PDID INTEGER NOT NULL,CONSTRAINT PK_studenttbl_STUID PRIMARY KEY (STUID),CONSTRAINT FK_studenttbl_periodtbl_PDID  FOREIGN KEY (PDID)  REFERENCES periodtbl(PDID)  ON Delete NO ACTION  ON Update CASCADE);

执行进弹窗提示语法错误,如图:

SQL系统关键字
但在VB.NET中却可以很好的执行:

Dim sqlstring As String = "Create TABLE studenttbl" & Environment.NewLine _                                & "(" & Environment.NewLine _                                & "STUID AUTOINCREMENT," & Environment.NewLine _                                & "STUname text(20) DEFAULT '请录入姓名'," & Environment.NewLine _                                & "PDID INTEGER NOT NULL," & Environment.NewLine _                                & "CONSTRAINT PK_studenttbl_STUID PRIMARY KEY (STUID)," & Environment.NewLine _                                & "CONSTRAINT FK_studenttbl_periodtbl_PDID  FOREIGN KEY (PDID)" & Environment.NewLine _                                & "    REFERENCES periodtbl(PDID)" & Environment.NewLine _                                & "    ON Delete NO ACTION" & Environment.NewLine _                                & "    ON Update CASCADE" & Environment.NewLine _                                & ");"        '连接数据库        Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\KingOne\Desktop\data\Database.accdb")        '打开数据库        conn.Open()        '生成命令        Dim cmd As New OleDbCommand(sqlstring, conn)        '执行命令        cmd.ExecuteNonQuery()        '关闭数据库        conn.Close()

执行后打开ACCESS文件查看效果:

默认值
ON关键字

二、vb.net系统关键字 position

在ACCESS界面可以很好的执行“SELECT position.* FROM position;”,但放到VB.NET程序中执行却报错,如图:

position关键字
把SQL语句修改为SELECT [position].* FROM [position]后正常执行命令。

三、原因分析

DEFAULT和ON是MS ACCESS SQL系统关键字所以无法在ACCESS界面执行,而position是VB.NET关键字所以无法在VB.NET中执行。对于MS ACCESS系统关键字可以直接放到VB.NET中执行,而对于VB.NET程序的系统关键字做表名或字段名用[]括起,当然最好不要使用系统关键字为妥。

转载地址:https://blog.csdn.net/zyjq52uys/article/details/89136156 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:手机芯片终端设计
下一篇:VB.NET学习笔记:ADO.NET操作ACCESS数据库——OleDbDataAdapter的Update方法更新数据库的秘密(行状态RowState和行版本 DataRowVersion)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月06日 18时14分34秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章