![](/img/trans.png)
[英]eExecuteDataSet for system.data.common.dbCommand?
[英]System.Data.Common.DbCommand: Parameterized Query as Procedure Parameter?
我將PostgreSQL中的過程定義為:
CREATE OR REPLACE FUNCTION CreateCursorC(text, text)
RETURNS text
LANGUAGE c
AS '$libdir/mylibs', $function$createcursorc$function$
執行示例:
SELECT CreateCursorC('cursor_name', 'SELECT a FROM x WHERE a=''text''');
當然我想使用參數(DbCommand.Parameters)。 像這樣:
SELECT CreateCursorC($1, 'SELECT a FROM x WHERE a=$2');
不幸的是它沒有用,因為參數$ 2在引號中。 有沒有辦法使用參數完成此任務,而不是通過編寫自定義SQL轉義函數 ?
我試圖在Devart論壇上得到答案,但沒有運氣: 參數化查詢作為程序參數? | Devart論壇
我想我理解你的問題。 當嘗試通過C#設置包含MySQL中的LIKE表達式的參數化查詢時,我遇到了類似的問題。
在LIKE表達式的情況下,我發現的技巧是使%字符成為參數的一部分。 在您的情況下,這種相同類型的邏輯可能適用於您的引用文本。
這是一段代碼,展示了我在我的案例中所做的事情:
IDBCommandParameters cmdParams = dbContext.CreateDBCommandParameters();
cmdParams.AddParameter(QueryConstants.likeParam, string.Format("%{0}%", likeFilter));
List<TQueryResult> companies = LoadModelList<TQueryResult>(dbContext.Find(QueryConstants.findCompaniesLikeStatement, cmdParams, false), "");
return companies;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.