C# Oledb 更新应用程序中的数据
C# Oledb update data in application
所以我有一个表格,其中有两个部分,一个要添加,一个要删除。
但问题是当我添加数据时,然后当我检查与删除部分关联的组合框时,我可以看到所有以前的数据,除了我刚刚添加的数据。所以我需要某种解决方案来刷新并在我单击“添加”按钮后立即将所有内容重新放入组合框中,但不幸的是最新数据不会显示。
添加按钮代码:
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();
}
这里的广告与我创建的 class 相关联,包含插入、select、删除、更新的所有方法。
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]));
}
我正在尝试使用另一个 class 执行 sql 查询(我创建了一个并使用不同的方法对所有查询和连接进行了编码,例如插入、删除、select)所以我不需要一次又一次地编写整个命令,但由于某种原因它没有用。我不得不一次又一次地编写每条命令,这非常有效。
所以我有一个表格,其中有两个部分,一个要添加,一个要删除。
添加按钮代码:
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();
}
这里的广告与我创建的 class 相关联,包含插入、select、删除、更新的所有方法。
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]));
}
我正在尝试使用另一个 class 执行 sql 查询(我创建了一个并使用不同的方法对所有查询和连接进行了编码,例如插入、删除、select)所以我不需要一次又一次地编写整个命令,但由于某种原因它没有用。我不得不一次又一次地编写每条命令,这非常有效。