易语言操作数据库的详细指南(基于Access/SQLite示例)
核心原理
易语言通过外部数据库支持库(如edb
、mysql
等)操作数据库,核心步骤包括:
- 连接数据库 → 2. 执行SQL指令 → 3. 处理结果集 → 4. 关闭连接。
以下以Access数据库(.mdb文件)和SQLite为例说明通用流程。
操作步骤详解
步骤1:准备工作
-
数据库准备
- 创建Access数据库
test.mdb
,内含表users
(字段:id, name, age)。 - 或创建SQLite数据库
test.db
(表结构相同)。
- 创建Access数据库
-
易语言环境配置
- 在易语言IDE中勾选支持库:工具 → 支持库配置 → 启用 “数据库操作支持库” 和 “SQLite3支持库”。
步骤2:连接数据库(关键代码)
.版本 2 .支持库 eDB .支持库 sqlite3 .程序集 窗口程序集_启动窗口 .程序集变量 数据库连接, 数据库连接 .程序集变量 记录集, 记录集 .子程序 _按钮_连接_被单击 ' Access连接示例 数据库连接.连接Access (取运行目录 () + “test.mdb”, “”) ' 密码为空时留空 ' SQLite连接示例(需先启用sqlite3支持库) ' 数据库连接.连接SQLite (取运行目录 () + “test.db”, , , ) .如果真 (数据库连接.是否已连接 () = 假) 信息框 (“数据库连接失败!”, 0, , ) 返回 .如果真结束 信息框 (“连接成功!”, 0, , )
步骤3:执行SQL指令
① 插入数据
.子程序 _按钮_插入_被单击 .局部变量 SQL, 文本型 SQL = “INSERT INTO users (name, age) VALUES ('张三', 25)” 数据库连接.执行SQL (SQL)
② 查询数据
.子程序 _按钮_查询_被单击 记录集 = 数据库连接.取记录集 (“SELECT * FROM users WHERE age > 20”) .判断循环首 (记录集.是否已到尾 () = 假) 输出调试文本 (“ID:” + 记录集.读字段值 (“id”) + “, 姓名:” + 记录集.读字段值 (“name”)) 记录集.移到下一条 () .判断循环尾 () 记录集.关闭 ()
③ 更新/删除数据
' 更新示例 数据库连接.执行SQL (“UPDATE users SET age=30 WHERE name='张三'”) ' 删除示例 数据库连接.执行SQL (“DELETE FROM users WHERE id=5”)
步骤4:关闭连接
.子程序 _按钮_关闭_被单击 .(数据库连接.是否已连接 ()) 数据库连接.关闭 () 信息框 (“连接已关闭”, 0, , ) .否则 信息框 (“未连接数据库”, 0, , ) .如果结束
注意事项
-
防SQL注入
- 使用参数化查询(易语言需调用
参数置文本()
等函数):.局部变量 参数表, 参数表 参数表.置文本 (“@name”, “李四”) 记录集 = 数据库连接.取记录集 (“SELECT * FROM users WHERE name=@name”, 参数表)
- 使用参数化查询(易语言需调用
-
错误处理
- 用
取错误文本()
捕获异常:.如果真 (数据库连接.执行SQL(SQL) = 假) 信息框 (“执行失败:” + 数据库连接.取错误文本(), 0, , ) .如果真结束
- 用
-
数据库兼容性
| 数据库类型 | 支持库 | 连接方法 |
|————|—————-|———————-|
| Access | eDB |连接Access()
|
| SQLite | sqlite3 |连接SQLite()
|
| MySQL | mysql支持库 |连接MySql()
|
| SQL Server | ODBC或MSSQL库 |连接ODBC()
|
常见问题解决
- 连接失败:检查文件路径、权限、驱动(Access需安装Office驱动)。
- 乱码问题:在连接字符串中添加字符集参数(如MySQL加
?charset=utf8
)。 - 记录集越界:操作前用
记录集.是否已到尾()
和记录集.是否已到头()
判断边界。
引用说明:本文代码基于易语言5.9版本及官方支持库文档编写,数据库操作规范参考微软ODBC标准及SQLite官方语法,安全建议依据OWASP SQL注入防护指南。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/27486.html