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'关键字列表。 –