我想更新由 ID 列表给出的行列表。通常,查询的参数可以通过参数属性传递。但如果我传递一个 ID 列表,Firebird 将不接受该查询。我正在使用 NuGet 的 FirebirdSql.Data.FirebirdClient。
代码(简化):
List<string> ids = someList.Select(_ => _.Id).ToList();
using (var fbCommand = new FbCommand("UPDATE someTable SET NAME='foo' WHERE ID IN (@ids)", fbConnection))
{
fbCommand.Parameters.Add("ids", ids);
fbCommand.ExecuteNonQuery();
}
表“someTable”的定义如下:
CREATE TABLE someTable (
ID CHAR(36),
NAME CHAR(20)
);
这是一个例外:
引发的异常:FirebirdSql.Data.FirebirdClient.dll 中的“FirebirdSql.Data.FirebirdClient.FbException”在 >FirebirdSql.Data.FirebirdClient.dll 中发生“FirebirdSql.Data.FirebirdClient.FbException”类型的异常,但未在用户代码中处理算术异常、数值溢出或字符串截断 字符串右截断