title: SQL use comma-separated values with IN clause
body: <p>I am developing an ASP.NET application and passing a string value like "1,2,3,4" into a procedure to select those values which are IN (1,2,3,4) but its saying "Conversion failed when converting the varchar value '1,2,3,4' to data type int."</p>
  
  <p>Here is the aspx code:</p>
  
  <pre><code>private void fillRoles()
  {
      /*Read in User Profile Data from database */
      Database db = DatabaseFactory.CreateDatabase();
  
      DbCommand cmd = db.GetStoredProcCommand("sp_getUserRoles");
  
      db.AddInParameter(cmd, "@pGroupIDs", System.Data.DbType.String);
      db.SetParameterValue(cmd, "@pGroupIDs", "1,2,3,4");
  
      IDataReader reader = db.ExecuteReader(cmd);
  
      DropDownListRole.DataTextField = "Group";
      DropDownListRole.DataValueField = "ID";
  
      while (reader.Read())
      {
          DropDownListRole.Items.Add((new ListItem(reader[1].ToString(), reader[0].ToString())));
      }
  
      reader.Close();
  }
  </code></pre>
  
  <p>Here is my procedure:</p>
  
  <pre><code>CREATE Procedure [dbo].[sp_getUserRoles](@pGroupIDs varchar(50))
  AS BEGIN
     SELECT * FROM CheckList_Groups Where id in (@pGroupIDs)
  END
  </code></pre>