[英]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.