我使用驱动程序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;
但它没有发生。 这提出了一个问题:有没有办法使用类似的参数动态插入字段列表?
答案 0 :(得分:1)
不幸的是,Npgsql不支持您尝试执行的操作。 NpgsqlParameter值应该仅用作where子句中的参数值。 为了按预期动态添加字段名称,您必须使用字符串连接手动创建查询。
我希望它有所帮助。
答案 1 :(得分:-1)
重写CommandText并添加:
foreach (NpgsqlParameter item in _Command.Parameters)
{
comm.Parameters.AddWithValue(item.ParameterName, item.Value);
}
解决你的问题..