2013-03-20 3 views
0

J'ai navigué sur Internet mais je ne trouve pas de solution au problème suivant.Valeurs de chaîne délimitées par des virgules de SQL Server à ListBox select

J'ai un contrôle ListBox qui est rempli avec une liste de valeurs d'une table de base de données SQL Server sur FormLoad.

Cela permet à l'utilisateur de sélectionner plusieurs valeurs et celles-ci peuvent être soumises dans la colonne de base de données SQL Server en tant que valeurs délimitées par des virgules.

Le problème est que je voudrais que l'utilisateur autorise la modification de ces valeurs soumises à partir du même contrôle ListBox. Par conséquent je voudrais montrer à l'utilisateur les valeurs qui sont tirées de la base de données en tant que valeurs choisies dans le ListBox et NE PAS remplir le ListBox avec ces valeurs car le ListBox a déjà été rempli avec des valeurs définies sur FormLoad.

J'essaie cela, mais sa ne fonctionne pas -

foreach (ListItem li in lst_subspeciality.Items) 
{ 
    foreach (string sqlitem in dt.Rows[0]["SubSpeciality"].ToString().Split(',')) 
    { 
     if (li.Text == sqlitem.ToString()) 
     { 
      li.Selected = true; 
     } 
    } 
} 

Toute aide est très appréciée.

Merci.

Répondre

0

Je n'ai pas testé, mais ce

List<string> myValues = dt.Rows[0]["SubSpeciality"].ToString().Split(',').ToList(); 

foreach (ListItem li in lst_subspeciality.Items) 
{ 
     if (myValues.Contains(li.Text)) 
      li.Selected = true; 
} 
+0

solution Nice, mais tout ce que je devais faire était de changer si (li.Text == sqlitem.ToString()) à si (li.Text.Trim () == sqlitem.Trim()). Merci beaucoup Dave! –

+0

Pas de soucis, j'ai fait une mise à jour bien que le code soit "plus propre" maintenant et fonctionne avec ou sans TRIM tel qu'il est contenu! :) – Dave

Questions connexes