【问题标题】:C# Oledb update data in applicationC# Oledb 在应用程序中更新数据
【发布时间】:2017-10-24 15:50:19
【问题描述】:

所以我有一个表格,其中有两个部分,一个要添加,一个要删除。 但问题是当我添加数据时,当我检查与删除部分关联的组合框时,我可以看到所有以前的数据,除了我刚刚添加的数据。因此,我需要某种解决方案来刷新并在单击“添加”按钮后立即将所有内容重新放入组合框中,但运气不好,最新数据不会显示。

添加按钮代码:

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 添加了代码
  • 使用参数避免sql注入和格式化问题。您在 while-read 中的 for 循环看起来没有必要。您应该使用字段名称而不是索引,因为将来字段位置可能会改变。
  • 我查看了代码我看不到问题...对不起。
  • @Wndrr 我没有说代码有任何问题。我只需要一个解决方案,例如当我添加或删除某些内容时,它也应该在应用程序内部同时更新,而不是在重新启动应用程序后

标签: c# ms-access oledb oledbcommand


【解决方案1】:

我试图使用另一个类执行 sql 查询(我创建了一个类并使用不同的方法对所有查询和连接进行编码,例如插入、删除、选择),所以我不需要一次又一次地编写整个命令,但对于某些原因它没有工作。我不得不一次又一次地编写每个命令,而且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多