2014-12-04 3 views
-1

Access 데이터베이스에 삽입하려고 시도하는 CheckedListBox 컨트롤 (cbIntendedMajor)이있는 Windows Form에서 작업하고 있습니다. 오류를 반환하지는 않지만 둘 이상의 확인란 항목을 선택하면 선택한 첫 번째 항목 만 표에 쉼표로 삽입됩니다. 여기에 내가 누락 된 부분에 대한 조언이 있습니까? 아래 코드는 다음과 같습니다.Visual Studio - Windows Form - CheckedListBox가 올바르게 삽입되지 않았습니다. C#

private void button1_Click(object sender, EventArgs e) 
    { 
     string conString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Temp\Interest.accdb"; 
     OleDbConnection con = new OleDbConnection(conString); 
     OleDbCommand cmd = con.CreateCommand(); 
     string text = "INSERT INTO InterestCard (FirstName, LastName, StreetAddress, City, State, ZipCode, Phone, Email, DOB, Gender, HighSchool, GraduationYear, PlannedTerm, IntendedMajor) VALUES (@FName, @LName, @SAddress, @City, @State, @Zip, @Phone, @Email, @DOB, @Gender, @HSchool, @GradYear, @PTerm, @IMajor)"; 
     cmd.CommandText = text; 

      con.Open(); 
      cmd.Parameters.AddWithValue("@FName", txtFirstName.Text); 
      cmd.Parameters.AddWithValue("@LName", txtLastName.Text); 
      cmd.Parameters.AddWithValue("@SAddress", txtAddress.Text); 
      cmd.Parameters.AddWithValue("@City", txtCity.Text); 
      cmd.Parameters.AddWithValue("@State", txtState.Text); 
      cmd.Parameters.AddWithValue("@Zip", txtZipCode.Text); 
      cmd.Parameters.AddWithValue("@Phone", txtPhone.Text); 
      cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
      cmd.Parameters.AddWithValue("@DOB", dtpDOB.Value); 
      cmd.Parameters.AddWithValue("@Gender", rbFemale.Checked); 
      cmd.Parameters.AddWithValue("@HSchool", txtHighSchool.Text); 
      cmd.Parameters.AddWithValue("@GradYear", txtGraduationYear.Text); 
      cmd.Parameters.AddWithValue("@PTerm", txtTermofEnrollment.Text); 




      foreach (string s in cbIntendedMajor.CheckedItems) 
      { 

        cmd.Parameters.AddWithValue("@IMajor", s + ","); 

      } 


      cmd.ExecuteNonQuery(); 


    } 
+0

) 반복적으로 AddWithValue ("@ IMajor")를 호출하면 마지막 하나만 효과가 있습니다. * then * AddWithValue를 호출하십시오. –

+0

그건 말이 되네요. 내가 루프 안에서 추가하고 있다는 것을 알지 못했어요. 고마워요. – user1863593

답변

0

귀하의 매개 변수는 한 번만 추가 할 수 있다고 생각합니다. 대신에 .CheckedItems를 반복하여 각 항목에 쉼표가 추가 된 단일 문자열을 작성하는 방법을 고려해보십시오. 그런 다음 foreach() 루프 외부에서 cmd.Parameters.AddwithValue ("@ IMajor", fullString

관련 문제