[英]statement for npgsql using parameter
我使用驅動程序npgsql在sql查詢中傳遞參數:
SqlCommand = new NpgsqlCommand();
....
SqlCommand.CommandText = "SELECT id,name FROM table1 WHERE field1=:param2 ORDER BY name;";
SqlCommand.Parameters.AddWithValue("param2", 1);
此查詢正確執行並發出了必要的數據,但是只要我在“選擇”部分中將參數添加到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);
}
並解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.