我正在尝试找到解决方案,但在任何地方都找不到帮助。 我有一个 SqliteConnection 对象,对此我使用查询选择器来传递参数化查询,但找不到任何帮助。
private SqliteConnection dbConn;
var users = dbConn.Query<Users>($"SELECT * FROM {nameof(Users)} WHERE {nameof(Users.Id)} = '{userID}'").FirstOrDefault();
这里的userID是输入变量,如何使其参数化?
不能参数化表名和列名;您可能需要对该部分进行硬编码。另外,当您参数化值时,不要包含引号。
当我在这里时,由于连接池,尝试重复使用相同的连接对象也是不好的做法,所以而不是
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();