Pass Array Parameter in SqlCommand

前端 未结 12 2011
情深已故
情深已故 2020-11-22 08:27

I am trying to pass array parameter to SQL commnd in C# like below, but it does not work. Does anyone meet it before?

string sqlCommand = \"SELECT * from Ta         


        
12条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-22 09:15

    Use .AddWithValue(), So:

    sqlComm.Parameters.AddWithValue("@Age", sb.ToString().TrimEnd(','));

    Alternatively, you could use this:

    sqlComm.Parameters.Add(
        new SqlParameter("@Age", sb.ToString().TrimEnd(',')) { SqlDbType = SqlDbType. NVarChar }
        );
    

    Your total code sample will look at follows then:

    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;
    
    StringBuilder sb = new StringBuilder();
    foreach (ListItem item in ddlAge.Items)
    {
         if (item.Selected)
         {
             sb.Append(item.Text + ",");
         }
    }
    
    sqlComm.Parameters.AddWithValue("@Age", sb.ToString().TrimEnd(','));
    
    // OR
    
    // sqlComm.Parameters.Add(new SqlParameter("@Age", sb.ToString().TrimEnd(',')) { SqlDbType = SqlDbType. NVarChar });
    

提交回复
热议问题