C#/WindowForm

ACCESS를 사용한 DB연결 -3 (PhoneBook)

hyun0229 2022. 5. 18. 16:13

저번글에 이어서 검색과 수정버튼을 제작하겠습니다.

 

검색버튼

  // 검색
    private void btnSearch_Click(object sender, EventArgs e)
    {
      if (txtSId.Text == "" &&
        txtSName.Text == "" &&
        txtPhone.Text == "")
        return;

      connOpen();

      string sql = string.Format("SELECT * FROM StudentTable WHERE ");
      if (txtSId.Text != "")
        sql += "SId = " + txtSId.Text;
      else if(txtSName.Text != "")
        sql += "SName = '" + txtSName.Text + "'";
      else if(txtPhone.Text != "")
        sql += "Phone = '" + txtPhone.Text + "'";

      comm = new OleDbCommand(sql, conn);
      //MessageBox.Show(sql);
      
      lstStudent.Items.Clear(); // 리스트박스를 지워주고

      reader = comm.ExecuteReader();   // DisplayStudent() 에서 복사해 온 부분
      while (reader.Read())
      {
        string x = "";
        x += reader["ID"] + "\t";
        x += reader["SId"] + "\t";
        x += reader["SName"] + "\t";
        x += reader["Phone"];
        lstStudent.Items.Add(x);
      }
      reader.Close();

      conn.Close();
      conn = null;
    }

첫줄에 아이디, 이름, 전화번호가 모두 없을 경우 리턴합니다.

존재한다면  string sql = string.Format("SELECT * FROM StudentTable WHERE ");에 아이디, 이름, 전화번호 순으로 먼저 존재하는 값을 뒤에 추가해줍니다.

그 후 리스트박스를 초기화 해주고 검색한 값을 가져옵니다.

 

수정버튼

 private void btnUpdate_Click(object sender, EventArgs e)
    {
      connOpen();

      string sql = string.Format("UPDATE StudentTable SET SId={0}, SName='{1}', Phone='{2}' WHERE ID={3}",
        txtSId.Text, txtSName.Text, txtPhone.Text, txtID.Text);

      comm = new OleDbCommand(sql, conn);
      int x = comm.ExecuteNonQuery();
      if (x == 1)
        MessageBox.Show("수정 성공!");
      connClose();
    }

UPDATE를 사용해 DB에 저장된 값을 수정(업데이트)합니다.

만약 수정을 성공할시 1값을 반환받고 if문을 통해 MessageBox를 사용합니다.

 

실행결과