0

首先,我使用 C# 并使用 Visual Studio 2010,并且仍然是这方面的学生。

我有一个列表框,显示我的数据库中管理员的名称。当我将另一个管理员添加到数据库时,更新在数据库中完成,但名称未添加到列表框中。

我试过阅读很多关于这个问题的帖子,但没有一个答案对我有用。预先感谢您的帮助。所以这是我的代码的错误部分:

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();
        }
    }
4

1 回答 1

0

请在 getListAdmin() 中删除静态数据表对象的实例化后尝试一下

tableAdmin = new DataTable("Administrateurs");在 getListAdmin() 方法中删除

于 2012-08-21T02:02:03.650 回答