SQL использует значения, разделенные запятыми, с предложением IN

Я разрабатываю приложение ASP.NET и передаю строковое значение типа« 1 , 2,3,4 "в процедуру для выбора тех значений, которые находятся в состоянии IN (1,2,3,4), но в нем говорится:" Ошибка преобразования при преобразовании значения varchar '1,2,3,4' в тип данных int . "

Вот aspx-код:

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();
}

Вот моя процедура:

CREATE Procedure [dbo].[sp_getUserRoles](@pGroupIDs varchar(50))
AS BEGIN
   SELECT * FROM CheckList_Groups Where id in (@pGroupIDs)
END
6
задан marc_s 6 January 2011 в 09:48
поделиться