我有从.net应用程序A,B,C,D,E,F获取的字符串,
我想写一个SQL选择语句像
set @string = 'A,B,C,D,E,F' select * from tbl_test where tbl_test.code in (@string)
这在t-SQL中将不起作用,因为它使用@string不将值分开的一个字符串。有什么办法可以做到这一点?
@string
它认为最简单的方法是动态SQL生成:
// assuming select is a SqlCommand string[] values = "A,B,C,D,E,F".Split(','); StringBuilder query = new StringBuilder(); query.Append("select * from tbl_test where tbl_test.code in ("); int i = 0; foreach (string value in values) { string paramName = "@p" + i++; query.Append(paramName); select.Parameters.AddWithValue(paramName, value); } query.Append(")"); select.CommandText = query.ToString(); // and then execute the select Command