2
그래서 두 개의 섹션과 삭제할 섹션이 하나 있습니다. 하지만 데이터를 추가 할 때 문제가 발생합니다. 삭제 된 섹션과 관련된 콤보 상자를 확인하면 방금 추가 한 데이터를 제외한 모든 이전 데이터를 볼 수 있습니다. 그래서 나는 어떤 종류의 솔루션을 새로 고침하고 추가 버튼을 클릭하자마자 모든 것을 콤보 상자에 넣으려고하지만 최신 데이터가 표시되지 않습니다. 추가 버튼C# Oledb 응용 프로그램의 데이터 업데이트
코드는 :
여기private void btnAddSubj_Click(object sender, EventArgs e)
{
OleDbDataReader cmd = ad.select("SELECT TOP 1 ID FROM subjects WHERE ID = " + int.Parse(txtSubjID.Text));
if (cmd.Read())
{
MessageBox.Show("Subject ID you entered is taken, please select a different one");
}
else
{
ad.insert("insert into subjects (`ID`,`subjectName`) values(" + int.Parse(txtSubjID.Text) + ",'" + txtSubjName.Text + "')");
}
populateComboBoxSubjName();
}
광고는 내가 생성 및 삽입에 대한 모든 방법을 선택, 삭제, 업데이트가 포함 된 클래스에 연결되어 있습니다. populateComboBoxSubjName에 대한
코드 :
private void populateComboBoxSubjName()
{
comboBoxSubjName.Items.Clear();
OleDbDataReader cmd = ad.select("SELECT * FROM subjects");
while (cmd.Read())
{
for (int f = 0; f < cmd.FieldCount; f+=2)
{
string data = (cmd.GetValue(f).ToString() + "-" + cmd.GetValue(f + 1).ToString());
comboBoxSubjName.Items.Add(data);
}
}
}
버튼 삭제 코드 :
private void btnDeleteSubj_Click(object sender, EventArgs e)
{
string selected = this.comboBoxSubjName.GetItemText(this.comboBoxSubjName.SelectedItem);
string[] idToDelete = selected.Split('-');
ad.delete("DELETE FROM subjects WHERE ID=" + int.Parse(idToDelete[0]));
}
'bt, DeleteSbj_Click()'도 표시 할 수 있습니까? – Wndrr
@Wndrr이 코드를 추가했습니다. –
SQL 삽입 및 서식 문제를 방지하기 위해 매개 변수를 사용하십시오. while-read 내부의 루프는 필요하지 않습니다. 나중에 필드 위치가 변경 될 수 있으므로 인덱스 대신 필드 이름을 사용해야합니다. – LarsTech