Search code examples
c#checkedlistbox

How to get the checked items string in a CheckListBox


foreach (var item in clbSymptoms.CheckedItems)
{
    using (var cmd = new SqlCommand(sql, conn))
    {
      cmd.Parameters.Add("@fName", SqlDbType.VarChar, 50).Value = txtFName.Text.Substring(0, 1).ToUpper() + txtFName.Text.Substring(1);
      cmd.Parameters.Add("@MName", SqlDbType.VarChar, 50).Value = txtMName.Text.Substring(0, 1).ToUpper() + txtMName.Text.Substring(1);
      cmd.Parameters.Add("@lName", SqlDbType.VarChar, 50).Value = txtLName.Text.ToUpper();
      cmd.Parameters.Add("@patientAge", SqlDbType.Int).Value = txtAge.Text;
      cmd.Parameters.Add("@purok", SqlDbType.VarChar, 50).Value = cbPurok.Text;
      cmd.Parameters.Add("@caseClass", SqlDbType.VarChar, 50).Value = cbClass.Text;
      cmd.Parameters.Add("@q1", SqlDbType.VarChar, 50).Value = cbQuestion1.Checked;
      cmd.Parameters.Add("@q2", SqlDbType.VarChar, 50).Value = cbQuestion2.Checked;
      cmd.Parameters.Add("@symptoms", SqlDbType.VarChar, 50).Value = item.ToString();
      cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now;
      cmd.ExecuteNonQuery();
    }
}

enter image description here

I want the symptoms to have their own cell but the name and other things to be a single cell only.


Solution

  • Loop through your checked items like this:

    foreach(var item in clbSymptoms.CheckedItems)
    {
      using (var cmd = new SqlCommand(sql, conn))
      {
        cmd.Parameters.Add("@fName", SqlDbType.VarChar, 50).Value = txtFName.Text.Substring(0, 1).ToUpper() + txtFName.Text.Substring(1);
        cmd.Parameters.Add("@MName", SqlDbType.VarChar, 50).Value = txtMName.Text.Substring(0, 1).ToUpper() + txtMName.Text.Substring(1);
        cmd.Parameters.Add("@lName", SqlDbType.VarChar, 50).Value = txtLName.Text.ToUpper();
        cmd.Parameters.Add("@patientAge", SqlDbType.Int).Value = txtAge.Text;
        cmd.Parameters.Add("@purok", SqlDbType.VarChar, 50).Value = cbPurok.Text;
        cmd.Parameters.Add("@caseClass", SqlDbType.VarChar, 50).Value = cbClass.Text;
        cmd.Parameters.Add("@questionnaire", SqlDbType.VarChar, 50).Value = "(1)" + cbQuestion1.Checked + " " + "(2)" + cbQuestion2.Checked;
        cmd.Parameters.Add("@symptoms", SqlDbType.VarChar, 50).Value = item.ToString();
        cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now;
        cmd.ExecuteNonQuery();
      }