如何将参数传递给sql'in'语句?

Adr*_*fin 15 c# postgresql ado.net npgsql

我想创建此查询:

select * from products where number in ('123', '234', '456');
Run Code Online (Sandbox Code Playgroud)

但我找不到任何使用Npgsql和NpgsqlParameter实现此功能的示例.我试过这样的:

string[] numbers = new string[] { "123", "234" };

NpgsqlCommands cmd = new NpgsqlCommands("select * from products where number in (:numbers)");
NpgsqlParameter p = new NpgsqlParameter("numbers", numbers);
command.Parameters.Add(p);
Run Code Online (Sandbox Code Playgroud)

但它没有用;)

Qua*_*noi 31

将其作为数组传递:

string[] numbers = new string[] { "123", "234" };

NpgsqlCommands cmd = new NpgsqlCommands("select * from products where number = ANY(:numbers)");
NpgsqlParameter p = new NpgsqlParameter("numbers", NpgsqlDbType.Array | NpgsqlDbType.Text);
p.value = numbers;
command.Parameters.Add(p);
Run Code Online (Sandbox Code Playgroud)