【发布时间】:2020-04-23 23:12:43
【问题描述】:
这个问题的重复,因为它没有得到满意的回答。 Delete where in clause in sqlite
在与原始发帖人 Cholo 几乎完全相同的场景中,我正在尝试一个简单的参数化 Delete 语句。
string UIDcsv = "1, 2, 3, 4, 5, 6";
Console.WriteLine(UIDcsv);
var sqlite_DeleteEmployee = new SQLiteCommand(sqlite_Conn);
sqlite_DeleteEmployee.CommandText = "DELETE FROM myTable WHERE UID IN (@x);";
sqlite_DeleteEmployee.Parameters.AddWithValue("@x", UIDcsv);
sqlite_DeleteEmployee.Prepare();
sqlite_DeleteEmployee.ExecuteNonQuery();
与链接的“已接受答案”中的 Cholo 一样,代码运行良好,但实际上并未执行此语句。这让我整个晚上都感到沮丧!
现在我已经写了这个,我正在查看我的其余代码并意识到这个 C# Sql 命令生成器很可能会在命令中自动在 @xyz 周围附加引号,从而将 UID 列表转换为单个字符串。我该如何阻止这种情况发生?
WriteLine 的输出:
1, 2, 3, 4, 5, 6
【问题讨论】: