簡體   English   中英

使用參數的npgsql語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM