SQLiteConnection参数化查询c#

问题描述 投票:0回答:1

我正在尝试找到解决方案,但在任何地方都找不到帮助。 我有一个 SqliteConnection 对象,对此我使用查询选择器来传递参数化查询,但找不到任何帮助。

private SqliteConnection dbConn;
var users = dbConn.Query<Users>($"SELECT * FROM {nameof(Users)} WHERE {nameof(Users.Id)} = '{userID}'").FirstOrDefault();

这里的userID是输入变量,如何使其参数化?

c# sqlite prepared-statement
1个回答
0
投票

不能参数化表名和列名;您可能需要对该部分进行硬编码。另外,当您参数化值时,不要包含引号

当我在这里时,由于连接池,尝试重复使用相同的连接对象也是不好的做法,所以而不是

private SqliteConnection dbConn;
它应该更像
private string sqliteConnectionString = "...";

所以我们最终得到这个:

private string sqliteConnectionString = "...";

using var conn = new SqliteConnection(sqliteConnectionString);
var users = conn.Query<Users>($"SELECT * FROM Users WHERE Id = {userID}").FirstOrDefault();
© www.soinside.com 2019 - 2024. All rights reserved.