문제

ASP.NET을 사용하고 있으며 CheckBox 값을 데이터베이스에 저장하려고합니다. 데이터베이스의 여러 확인란이 동일한 필드에 입력 될 수 있습니다. 예를 들어 이름 "Comma"및 "Hyphen"이있는 두 개의 확인란이 있으며 사용자 가이 두 가지를 모두 확인하면 데이터베이스가 값을 저장합니다. ','-'. 이 작업을 어떻게합니까?

감사해요

도움이 되었습니까?

해결책

여러 값을 동일한 열에 저장하려면 플래그 열거를 사용하는 것이 좋습니다. 여기에 있습니다 확인란을 사용한 코드 샘플.

값을 실제로 쉼표로 정화 한 형식으로 저장 해야하는 경우 다음과 같은 것을 시도 할 수 있습니다.

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

다른 팁

나는 동의 할 것이다 데이비드 토마스 가르시아 권장 사항 열거를 사용하여 값을 데이터베이스에 저장할 수있는 경우 (int 또는 가질 옵션의 양에 적합한 것).

그래도 옵션이 아니라면 데이터베이스에 일련의 문자열로 저장 해야하는 경우 다음과 같은 작업을 수행 할 것입니다.


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

여기에는 데이터베이스에 저장된 값에 저장할 값의 분리가 포함되어 있지 않지만 필요한 경우 목록을 사용하고 무엇을 할 수 있습니다. 데이비드 토마스 가르시아 .toArray (). join ( ",")로 언급; savedata ()와 loadData ()에서 dbval을 목록으로 만들면 구문은 변경이 필요하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top