1
我們有C#程序產生的年度定期報告,月度等基礎。 這是報表的內聯SQL示例。如何將值列表作爲參數發送到內聯SQL?
SELECT DOB, MEMBNO FROM BASIC WHERE DOJ = @ReportRunDate AND STATUS IN @StatusList
使用的SqlParameter我們可以發送ReportRunDate爲parmeter,但是來的時候@StatusList我們無法找到通過爲參之有道。
對於如@statusList的值來自輸入會看起來像這樣「AB」,12' ,‘Z1’
我們可以實現使用字符串連接像下面
string statusList = "'AB',12','Z1";
string sqlCmdText = SELECT DOB, MEMBNO FROM BASIC WHERE DOJ = @ReportRunDate AND STATUS IN (" + statusList + ")";
但我們更喜歡使用SQL的所有輸入值作爲參數。
NOTE: - 我剛纔提到的查詢是一個例子,原來的查詢是一個頁面長度,並且有多個IN子句。同樣根據規範,我們僅限於使用內聯查詢。
請您給您的
- 如何參數化StatusList變量的指導?
- 有幾十個需要使用內聯SQL的報表,我們正在考慮將每個sql與C#代碼分離並將它們移動到嵌入式資源。這是最佳做法嗎?
感謝所有。
你不能參數是去了'IN'關鍵字列表。 –