使用参数的npgsql语句

时间:2014-06-30 03:27:07

标签: c# sql postgresql npgsql

我使用驱动程序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;

但它没有发生。 这提出了一个问题:有没有办法使用类似的参数动态插入字段列表?

2 个答案:

答案 0 :(得分:1)

不幸的是,Npgsql不支持您尝试执行的操作。 NpgsqlParameter值应该仅用作where子句中的参数值。 为了按预期动态添加字段名称,您必须使用字符串连接手动创建查询。

我希望它有所帮助。

答案 1 :(得分:-1)

重写CommandText并添加:

foreach (NpgsqlParameter item in _Command.Parameters)
{
    comm.Parameters.AddWithValue(item.ParameterName, item.Value);
}

解决你的问题..