Secondo voi dove sbaglio??

Da un listbox recupero gli X valori selezionati e li divido con una virgola

string IDProvince = "";

foreach (ListItem list in lbProvince.Items)
{
if (list.Selected)
{
IDProvince = IDProvince + ", '" + list.Value + "'";
}
}

IDProvince = IDProvince.Substring(1);

SqlParameter[] parameters = new SqlParameter[1];
parameters[0] = new SqlParameter("@IDProvince", IDProvince);

SqlCommand cmd = CreateStoreProcedureCommand("GetAnagrafica_Campagn a", connection, parameters);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;


nella mia SP


GO
ALTER PROCEDURE [dbo].[GetAnagrafica_Campagna]
@IDProvince varchar(MAX)

AS
BEGIN
SET NOCOUNT ON;

SELECT
...
FROM
Anagrafica
...
WHERE Comuni.IDProvincia in (@IDProvince)

Niente... vuoto!!

La cosa straa è che se

nel codice metto
IDProvince = "PD";
visualizzo dati

se invece metto
IDProvince = "PD,BS";
non vedo nulla


al contrario se nella SP scrivo
WHERE Comuni.IDProvincia in ('PD','BS')

funziona!!

cosa sbaglio?