C#数据包列表框刷新

时间:2012-03-21 21:28:39

标签: c# databound listboxitems

我已经检查了这个主题的答案,但我仍然不知道为什么这不起作用!请帮助!

    private void btnAdd_Click(object sender, EventArgs e)
    {
        SqlCeCommand insTitle = new SqlCeCommand("Insert into Titles(Title) values('" + txtAddTitle.Text +"')");
        insTitle.Connection = dbConnection;

        try 
        {
            if (dbConnection.State == ConnectionState.Closed) { dbConnection.Open(); }
            insTitle.ExecuteNonQuery();


            this.hRDataSet.AcceptChanges();
            this.titlesTableAdapter.Update(this.hRDataSet);
            this.tableAdapterManager.UpdateAll(this.hRDataSet);

            lstTitles.BeginUpdate();
            lstTitles.DataSource = titlesBindingSource;
            lstTitles.DisplayMember = "Title";
            lstTitles.ValueMember = "Title_ID";
            lstTitles.EndUpdate();
        }
        catch (Exception insErr)
        {
            MessageBox.Show(insErr.Message);
        }
    }

列表框“lstTitles”不会刷新,也不会显示添加的项目,尽管它们在数据库中!

1 个答案:

答案 0 :(得分:0)

Update的{​​{1}}方法用于使用DataAdapter中所做的更改来更新数据库。您需要做的就是相反:您需要使用数据库中修改过的数据更新DataSet,因此您应该使用DataSet,而不是Fill

无论如何,你的方法不是最优的;由于您正在使用数据集,因此应将新值添加到Update中的相应表中,然后使用DataSet方法更新数据库。 ListBox将自动获取更改。

Update