asp.net を使用しており、チェックボックスの値をデータベースに保存しようとしています。データベースの同じフィールドに複数のチェックボックスを入力できます。たとえば、「コンマ」と「ハイフン」という名前の 2 つのチェックボックスがあり、ユーザーがこれらの両方をチェックすると、データベースは値「、」、「-」を保存します。これどうやってやるの?
ありがとう
複数の値を同じ列に保存するには、フラグ列挙を使用することをお勧めします。これは、チェックボックスを使用したコード サンプルです。
値をコンマ区切り形式で保存する必要がある場合は、次のようにしてみてください。
List<string> values = new List<string>();
if (cbComma.Checked) {
values.Add("','");
}
...
string result = values.ToArray().Join(",");
列挙型を使用して(intまたはオプションの量に適したものとして)データベースに値を保存できる場合は、 DavidThomasGarciaの推奨に同意します。
それがオプションではなく、それらを文字列としてデータベースに保存する必要がある場合は、次のようにします。
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.
}
これには、データベースに格納されている値に保存される値の分離は含まれないことに注意してください。ただし、必要に応じて、リストを使用して、David Thomas Garciaが.ToArray()。Join( "、 "); SaveData()とLoadData()で、dbValをリストにするだけで、構文を変更する必要はありません。