Pregunta

Estoy usando asp.net y estoy tratando de guardar los valores de las casillas de verificación en una base de datos. Se pueden ingresar múltiples casillas de verificación en el mismo campo en la base de datos. Entonces, por ejemplo, tengo dos casillas de verificación con los nombres "Coma" y "Guión" y si el usuario verifica ambos, la base de datos almacenará los valores ',', '-'. ¿Cómo haces esto?

gracias

¿Fue útil?

Solución

Para guardar varios valores en la misma columna, recomendaría usar una enumeración de marca. Aquí hay una muestra de código usando casillas de verificación .

Si realmente tiene que almacenar los valores en un formato delimitado por comas, puede intentar algo como esto:

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

Otros consejos

Estoy de acuerdo con la recomendación de David Thomas Garcia si puede guardar el valor a la base de datos utilizando la enumeración (como int o lo que sea apropiado para la cantidad de opciones que tendrá).

Sin embargo, si esa no es una opción, y está obligado a almacenarlos en la base de datos como una cadena de caracteres, haría algo como lo siguiente:


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.
}

Tenga en cuenta que esto no incluye ninguna separación de los valores que se guardarán en el valor almacenado en la base de datos, pero si lo necesita, puede usar una Lista y hacer lo que David Thomas Garcia mencionado con .ToArray (). Join (", "); en SaveData () y en LoadData () simplemente haga dbVal una Lista y la sintaxis no necesita cambios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top