Sql命令中的通阵列参数

Sql命令中的通阵列参数

我试图像下面这样在C#中将数组参数传递给SQLCommnd,但它不起作用。以前有人见过吗?


string sqlCommand = "SELECT * from TableA WHERE Age IN (@Age)";

SqlConnection sqlCon = new SqlConnection(connectString);

SqlCommand sqlComm = new SqlCommand();

sqlComm.Connection = sqlCon;

sqlComm.CommandType = System.Data.CommandType.Text;

sqlComm.CommandText = sqlCommand;

sqlComm.CommandTimeout = 300;

sqlComm.Parameters.Add("@Age", SqlDbType.NVarChar);

StringBuilder sb = new StringBuilder();

foreach (ListItem item in ddlAge.Items)

{

     if (item.Selected)

     {

         sb.Append(item.Text + ",");

     }

}


sqlComm.Parameters["@Age"].Value = sb.ToString().TrimEnd(',');


眼眸繁星
浏览 384回答 3
3回答

PIPIONE

如果您可以使用像“Dapper”这样的工具,这可以是简单的:int[]&nbsp;ages&nbsp;=&nbsp;{&nbsp;20,&nbsp;21,&nbsp;22&nbsp;};&nbsp;//&nbsp;could&nbsp;be&nbsp;any&nbsp;common&nbsp;list-like&nbsp;typevar&nbsp;rows&nbsp;=&nbsp;connection.Query<YourType>( "SELECT&nbsp;*&nbsp;from&nbsp;TableA&nbsp;WHERE&nbsp;Age&nbsp;IN&nbsp;@ages", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;{&nbsp;ages&nbsp;}).ToList();Dapper将处理对单个参数的展开。为了你.
打开App,查看更多内容
随时随地看视频慕课网APP