Hello I have a database with drivers and combobox which is populated with the drivers. But when I add a new driver with a button Add Driver it's added only in Microsoft Acces table not in the combobox. And once I reload the program the new driver is deleted from the database. I also have connected the database in Data Source and I can edit the tables only from there(if I want to edit the combobox).
This is my connection with the database
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();
and this is my Add Driver button:
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();
}
Please help me to find my mistake..