簡體   English   中英

更新數據源后,列表框不顯示新行

[英]Listbox doesn't show new row after updating the datasource

首先,我在C#中使用Visual Studio 2010,並且仍然是該領域的學生。

我有一個列表框,顯示數據庫中管理員的名稱。 當我向數據庫添加另一個Admin時,更新在數據庫中完成,但名稱未添加到列表框中。

我嘗試閱讀有關此問題的大量文章,但沒有答案對我有用。 預先感謝您的幫助。 所以這是我的代碼的錯誤部分:

class adminDAO
    {
        public static Administration admin;
        private static Connexion connect;
        private static OleDbDataReader reader;
        private static OleDbCommandBuilder cmdBuilder;
        private static OleDbDataAdapter da_Admin;
        private static DataSet ds_Admin;
        private static DataTable tableAdmin = new DataTable("Administrateurs");

        private static int nbLignes = 0;

        public static void getListAdmin()
        {
            string req = "SELECT * FROM Administrateurs";
            da_Admin = new OleDbDataAdapter(req, connect.dbconnect);
            ds_Admin = new DataSet();
            da_Admin.Fill(ds_Admin, "Administrateurs");
            tableAdmin = new DataTable("Administrateurs");

            da_Admin.Fill(tableAdmin);

            admin.bS_Admin.DataSource = tableAdmin;
            admin.lb_admin.DataSource = admin.bS_Admin;
            admin.lb_admin.DataBindings.Add("Text", admin.bS_Admin, "nomAdmin");

            nbLignes = ds_Admin.Tables["Administrateurs"].Rows.Count;
        }

        public static void setAdmin(string nomAdmin, string username, string password)
        {
            connect = Connexion.getConnexion();

            try
            {
                nbLignes = nbLignes + 1;
                cmdBuilder = new OleDbCommandBuilder(da_Admin);

                string req = "INSERT INTO Administrateurs VALUES(@noAdmin, @nomAdmin, @username, @password)";
                OleDbCommand insertCommand = new OleDbCommand(req, connect.dbconnect);
                insertCommand.Parameters.AddWithValue("@noAdmin", nbLignes);
                insertCommand.Parameters.AddWithValue("@nomAdmin", nomAdmin);
                insertCommand.Parameters.AddWithValue("@username", username);
                insertCommand.Parameters.AddWithValue("@password", password);

                insertCommand.ExecuteNonQuery();

                da_Admin.Update(tableAdmin);

            }
            catch(OleDbException ex)
            {
                MessageBox.Show("Erreur de mise à jour : " + ex.Message);
            }
            connect.exitConnexion();
        }
    }

請在刪除getListAdmin()中的靜態數據表對象的實例之后嘗試一下

即刪除tableAdmin = new DataTable("Administrateurs"); 在getListAdmin()方法內部

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM