È possibile memorizzare più valori in una cella nel database? Sulla base dell'immagine qui sotto sulla colonna famcon
, è possibile inserire solo un valore da una casella di controllo selezionata anche se l'utente ha scelto più valori.
questa è la mia domanda per questa tabella:
foreach (DataRowView item in this.checkedListBox1.CheckedItems)
{
NpgsqlCommand cmd = new NpgsqlCommand("Insert into name (eid, name, famcon) SELECT @eid, @name, @famcon", conn);
cmd.Parameters.AddWithValue("@eid", textBox1.Text);
cmd.Parameters.AddWithValue("@name", textBox2.Text);
string[] value = item.Row[0].ToString().Split(",");
cmd.Parameters.AddWithValue("@famcon", value);
cmd.ExecuteNonQuery();
}
risposte:
0 per risposta № 1non stai aggiungendo gli elementi di string[] value
nel tuo campo. provare:
string[] value = item.Row[0].ToString().Split(",");
string insert="";
foreach (string s in value)
{
insert=" "+s;
}
cmd.Parameters.AddWithValue("@famcon", insert);
0 per risposta № 2
Potresti usare a bitset type, che imposta flag posizionali in una stringa.
Ogni bit rappresenterebbe un valore individuale, ma dovresti mantenere il collegamento tra bit e valori, ovvero quale bit è quale.
In alternativa funziona una stringa separata da spazio o virgola. Ogni stringa è un codice leggibile dall'uomo che rappresenta un valore. Dovresti analizzare la stringa ma è più facile da leggere rispetto ai valori di bit.