2010-06-13 4 views
0

У меня есть визуальный проект C#, и я пытаюсь вставить данные в базу данных MS Access, когда я нажимаю кнопку. Вот код:Данные не сохраняются в базе данных MS Access

private void button1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       OleDbDataAdapter adapter=new OleDbDataAdapter(); 
       adapter.InsertCommand = new OleDbCommand(); 
       adapter.InsertCommand.CommandText = 
        "insert into Candidati values ('" + maskedTextBox1.Text.Trim() + "','" + textBox1.Text.Trim() + "', '" + textBox2.Text.Trim() + "', '" + textBox3.Text.Trim() + "','" + Convert.ToDouble(maskedTextBox2.Text) + "','" + Convert.ToDouble(maskedTextBox3.Text) + "')"; 
       con.Open(); 
       adapter.InsertCommand.Connection = con; 
       adapter.InsertCommand.ExecuteNonQuery(); 
       con.Close(); 
       MessageBox.Show("Inregistrare adaugata cu succes!"); 
       maskedTextBox1.Text = null; 
       maskedTextBox2.Text = null; 
       maskedTextBox3.Text = null; 
       textBox1.Text = null; 
       textBox2.Text = null; 
       textBox3.Text = null; 
       maskedTextBox1.Focus(); 
      } 
      catch (AdmitereException exc) 
      { 
       MessageBox.Show("A aparut o exceptie: "+exc.Message, "Eroare!", MessageBoxButtons.OK, MessageBoxIcon.Error); 
      } 
     } 

Строка соединения:

private static string connectionString; 
     OleDbConnection con; 
     public AddCandidati() 
     { 
      connectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=Admitere.mdb"; 
      con = new OleDbConnection(connectionString); 
      InitializeComponent(); 
     } 

Где AddCandidati это форма. Данные не сохраняются в базе данных, почему? У меня есть файл .mdb в папке проекта. Что я делаю неправильно? У меня не было никаких исключений, когда я нажал кнопку.

+0

Получите строку команды insert и попробуйте запустить ее непосредственно внутри доступа, чтобы убедиться, что запрос действителен. – Sijin

+0

Запрос действителен, если он недействителен, я должен получить исключение в блоке catch – qwerty

ответ

-1

Ваша команда вставки неверна. Сначала необходимо указать имена столбцов, а затем указать значения для каждого из этих столбцов.

INSERT INTO tablename (column1, column2, column3) VALUES ('value1', 'value2', 'value3') 
+0

Нет, сначала не нужно указывать столбцы. Я изменил с connectionString = "Provider = Microsoft.JET.OLEDB.4.0; Источник данных = D: \\ Admitere.mdb"; (также скопировал базу данных в D: \\) и теперь работал. – qwerty

+0

@qwerty Вы утверждаете, что решили проблему? Если да, пожалуйста, ответьте или пометьте его или удалите. – Jay

Смежные вопросы