何よりもまず、私は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();
}
}