Question

J'utilise asp.net et j'essaie de sauvegarder les valeurs des cases à cocher dans une base de données. Plusieurs cases à cocher peuvent être entrées dans le même champ de la base de données. Ainsi, par exemple, j'ai deux cases à cocher portant les noms "Comma". et "trait d'union" et si l'utilisateur vérifie les deux, la base de données stockera les valeurs ',', '-'. Comment faites-vous cela?

merci

Était-ce utile?

La solution

Pour enregistrer plusieurs valeurs dans la même colonne, nous vous recommandons d'utiliser une énumération d'indicateur. Voici un exemple de code à l'aide de cases à cocher . .

Si vous devez vraiment stocker les valeurs dans un format délimité par des virgules, essayez quelque chose comme ceci:

List<string> values = new List<string>();
if (cbComma.Checked) {
   values.Add("','");
}
...
string result = values.ToArray().Join(",");

Autres conseils

Je suis d'accord avec la recommandation de David Thomas Garcia si vous pouvez économiser la valeur. à la base de données en utilisant l'énumération (en tant qu'int ou quoi que soit approprié pour la quantité d'options que vous aurez).

Si ce n'est pas une option et que vous êtes obligé de les stocker dans la base de données sous la forme d'une chaîne de caractères, je procéderais de la manière suivante:


private void LoadData()
{
   string dbVal = DataAccess.GetDbVal(); //Get your value from the database.
   chkComma.Checked = dbVal.Contains(",");
   chkDash.Checked = dbVal.Contains("-");
}

private void SaveData()
{
   string dbVal = "";
   if(chkComma.Checked)
      dbVal += ",";
   if(chkDash.Checked)
      dbVal += "-";
   DataAccess.SaveDbVal(dbVal); //Send the value of dbVal to your data layer to be saved.
}

Notez que cela n'inclut pas la séparation des valeurs à enregistrer dans la valeur stockée dans la base de données, mais si vous en aviez besoin, vous pouvez utiliser une liste et faire ce que David Thomas Garcia mentionné avec le .ToArray (). Join (", ","); Dans SaveData () et LoadData (), il suffit de faire de dbVal une liste et la syntaxe n’a pas besoin d’être modifiée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top