使用参数的NPGSQL语句
本文关键字:NPGSQL 语句 参数 | 更新日期: 2023-09-27 18:10:56
我使用驱动程序npgsql:
传递sql查询中的参数SqlCommand = new NpgsqlCommand();
....
SqlCommand.CommandText = "SELECT id,name FROM table1 WHERE field1=:param2 ORDER BY name;";
SqlCommand.Parameters.AddWithValue("param2", 1);
此查询正确执行并发出必要的数据,但是一旦我在"select"部分向sql添加参数
SqlCommand.CommandText = "SELECT id,name :param1 FROM table1 WHERE field1=:param2 ORDER BY name;";
SqlCommand.Parameters.AddWithValue("param1", ",field1");
SqlCommand.Parameters.AddWithValue("param2", 1);
它给了我一些废话。理论上,这个对服务器的请求将被视为
。SELECT id,name,field1 FROM table1 WHERE field1=1 ORDER BY name;
但它没有发生。这就提出了一个问题:是否有一种方法可以使用类似的参数动态插入字段列表?
不幸的是,Npgsql不支持您正在尝试做的事情。NpgsqlParameter值应该只用作where子句中的参数值。为了按照您的意愿动态地添加字段名,您必须通过使用字符串连接来手动创建查询。
重写你的CommandText并添加这个:
foreach (NpgsqlParameter item in _Command.Parameters)
{
comm.Parameters.AddWithValue(item.ParameterName, item.Value);
}
解决你的问题