从C#传递Sql查询中的字符串

use*_*370 -1 c# sql asp.net

我有一个SQL查询如下:

Select CatId 
From tbl_T2H_Category 
Where Category IN ('Category3', 'Category4', 'Category6')
Run Code Online (Sandbox Code Playgroud)

现在我想要的是IN子句中的值应该从checkboxlist中动态添加.我从我的控件获取逗号分隔值并将其传递给sql查询,如下所示:

string mystring = "Category3,Category4,Category6";
cmd.commanText = "Select CatId From tbl_T2H_Category Where Category IN (" + mystring + ")";
Run Code Online (Sandbox Code Playgroud)

这不是在sql端执行,因为sql只识别字​​符串,如果它们在"'"""(单引号)里面.请帮我写相应的查询.

Joe*_*orn 5

您想使用表值参数.这里显示的MSDN文章比我能更好地演示它:

http://msdn.microsoft.com/en-us/library/bb675163.aspx

  • +1,因为没有提出明显的、危险的“SELECT 'INJECT' + 'ME' FROM Table'” (2认同)