数据库查询
对指定数据库执行 SQL,并按执行方式返回表格、对象列表、影响行数或单个值。需要具备数据库基础知识。本功能仍为预览状态,欢迎反馈问题。
当前模块定义
概述
支持 SQL Server、MySQL、SQLite、OleDB、ODBC。内部用 Dapper 执行查询。
更新、删除数据可能造成重大损失,请谨慎操作。
参数说明
数据库连接类型:SQL Server、MySQL、SQLite、OleDB、ODBC。
连接字符串:数据库的 ConnectionString。各类型写法不同,可参考 connectionstrings.com。Quicker 对下面两种情况做了补全:
- SQLite:可以直接填数据库文件的完整路径,会自动补成
Data Source=SQLite数据库文件完整路径;Version=3; - OleDB 访问 Access(
.mdb/.accdb):也可以直接填文件路径,会自动补成Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Access文件路径;Persist Security Info=False;
SQL语句:要执行的 SQL。语句里可用 @参数名 写参数,例如:
select * from contacts Where first_name = @FirstName
参数:仅在 SQL 里使用了参数时提供。写参数名时不要带前面的 @。支持:
- 词典变量,键为 SQL 里的参数名。
- 能转成词典的文本:
- 简单格式:每行一个,
参数名:参数值 - JSON:
{"文本参数名":"参数值","数字参数2":参数值2}
- 简单格式:每行一个,
- C#
DataRow对象。 - 匿名对象:
$= new { ParamName= value }
超时秒数:执行查询的超时时间。留空或 0 表示默认。
执行方式:
- Query:查询并返回结果数据:主要用于
SELECT,例如SELECT * FROM Table1 - Execute:执行并返回影响的行数:主要用于
INSERT、UPDATE、DELETE - ExecuteScalar:执行并返回单个值(首行首列的值):例如
SELECT COUNT(1) FROM Table1
各方式的输出见下面。
失败后停止:遇到异常时是否停止动作。默认开启。查询结果为空不一定会失败,请以实测为准。
Query:查询并返回结果数据
Execute:执行并返回影响的行数
ExecuteScalar:执行并返回单个值
输出
- 是否成功:是否未出现异常。不代表一定有返回行,也不代表一定改到了数据。
- 查询结果(表格):仅 Query。表格类型(DataTable)。可用 表格数据操作 查看或继续处理。
- 查询结果(对象列表):仅 Query。动态对象列表,每行一个对象。
- 首项结果:仅 Query。第一行,可输出到动态对象或词典。没有结果时为
null。 - 结果行数:仅 Query。
- 影响行数:仅 Execute。创建、更新或删除的行数。
- 单值结果:仅 ExecuteScalar。查询返回的单个值。
遍历数据行
需要 Quicker 1.28.10+。查询结果可以输出到表格,或输出到动态对象列表,再用 每个 循环。

- 对表格的每行循环,见 表格变量类型。
- 对动态对象列表循环:
此时「项」应输出到动态对象变量。循环里用 {行对象}.列名 访问某一列。
限制与排障
- 本功能仍为预览状态。更新、删除请先在测试库验证。
- 结果为空通常不会触发失败;不要只靠 是否成功 判断有没有行。
- SQL 参数名不要带
@。连接字符串写错时,先按下面的格式核对。 - MySQL 使用 MySqlConnector,SQLite 使用 System.Data.SQLite。
常见连接字符串
SQL Server
- 标准:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword; - 连接到某个实例:
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword; - 非标准端口:
Server=myServerName,myPortNumber;Database=myDataBase;User Id=myUsername;Password=myPassword;
MySQL
Server=myserver;User ID=mylogin;Password=mypass;Database=mydatabase
创建 SQLite 数据库
可以用下面的子程序创建 SQLite 数据库,参数为数据库文件的完整路径。
示例动作
步骤较多,只保留分享卡片。
相关链接
更新于