我使用驱动 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 子句中的参数值。 为了按照您的意愿动态添加字段名称,您必须使用字符串连接手动创建查询。
希望对你有帮助。
关于c# - 使用参数的 npgsql 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482569/