C#使用数据库值更新组合框



你好,我有一个包含驱动程序的数据库和一个填充了驱动程序的组合框。但当我用"添加驱动程序"按钮添加新的驱动程序时,它只添加在Microsoft Access表中,而不是组合框中。一旦我重新加载程序,新的驱动程序就会从数据库中删除。我还连接了数据源中的数据库,我只能从那里编辑表(如果我想编辑组合框(。

这是我与数据库的连接

private void Form1_Load(object sender, EventArgs e)
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=transportDateBase.accdb");
cmd = new OleDbCommand();
con.Open();
cmd.Connection = con;
string query = "SELECT Name FROM Drivers";
cmd.CommandText = query;
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
comboDriver.Items.Add(reader["Name"]);
}
con.Close();

这是我的"添加驱动程序"按钮:

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = ("Provider=Microsoft.ACE.Oledb.12.0;Data Source=transportDateBase.accdb");
String Id = textID.Text;
String Name = textName.Text;
String Age = textAge.Text;
String City = textCity.Text;
OleDbCommand cmd = new OleDbCommand("INSERT into Drivers (Id, Name, Age, City) Values(@Id, @Name, @Age, @City)");
cmd.Connection = conn;
conn.Open();
if (conn.State == ConnectionState.Open)
{
cmd.Parameters.Add("@Id", OleDbType.VarChar).Value = Id;
cmd.Parameters.Add("@Name", OleDbType.VarChar).Value = Name;
cmd.Parameters.Add("@Age", OleDbType.VarChar).Value = Age;
cmd.Parameters.Add("@City", OleDbType.VarChar).Value = City;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("New Driver Added");
conn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Source);
conn.Close();
}

仅仅因为您已经将其添加到数据库中,并不意味着会发生任何其他事情。

你仍然需要更新你的用户界面。

在执行查询后添加此项:

comboDriver.Items.Add(Name);

顺便说一句,您还应该将conn.Open((包装在一个try-catch以及中

最新更新