2013-08-22 3 views
2

Я разрабатываю приложение Windows C#. Я использовал базу данных доступа. Когда я выбираю данные из базы данных, я получаю данные, но при вставке данных она не вставлена, а также не отображается какая-либо ошибка.Данные не вставлены в базу данных Access

Но когда я запускаю тот же запрос вставки в Access, он встает. Вот мой код:

public void connCheck() 
    { 
     try 
     { 
      cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database\MyDatabase.mdb;Persist Security Info=True;Jet OLEDB:Database Password=2013"); 
      if (cn.State == ConnectionState.Closed) 
       cn.Open();     
     } 
     catch (Exception exp) 
     { 
      MessageBox.Show(exp.ToString()); 
     } 
    } 

    public bool ExecuteNonQuery() 
    { 
     try 
     { 
      connCheck(); 
      string sqlQuery = "INSERT INTO tblResult(ExamSet,SetId,FullMarks,ObtainedMarks,MarksPercentage,ElapsedTime,LastQIndex,CreatedDate,Completed) 
      Values(1,27,'200.00',0,0,0,1,DATE(),'N')"; 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = cn; 
      cmd.CommandText = sqlQuery;     
      cmd.ExecuteNonQuery(); 
      return true; 
     } 
     catch(OleDbException ex) 
     { 
      ErrorMsg = ex.ToString(); 
      return false; 
     } 
     finally 
     { 
      cn.Close(); 
      cn.Dispose(); 
      cmd.Dispose(); 
     } 
    } 
+3

Может помочь, если вы разместите содержимое sqlQuery – TGH

+0

. Я добавил свой запрос в код, пожалуйста, проверьте. – Raghubar

+0

Дайте точку останова и проверьте, в каком месте вам не хватает ... – Sasidharan

ответ

2

Как о замене кода запроса, как этот

string sqlQuery = "INSERT INTO tblResult([ExamSet],[SetId],[FullMarks],[ObtainedMarks],[MarksPercentage],[ElapsedTime],[LastQIndex],[CreatedDate],[Completed]) 
     Values(1,27,'200.00',0,0,0,1,DATE(),'N')"; 

Update:

Одним из вопросов может быть Security warning, отключающий содержание.

Try и посмотреть, если это работает (Перейдите к MDB):

  1. Нажмите на вкладке «внешние данные»
  2. Там должна быть предупреждением системы безопасности, которая гласит: «Некоторое содержание в базе данных было отключено "
  3. нажмите на кнопку„Параметры“
  4. выберите„Включить это содержимое“и нажмите на кнопку OK
+0

Спасибо за предложение, но он не работает. – Raghubar

+0

Я пробовал, чтобы он не работал. – Raghubar

0

Try параметризировать d с помощью cmd.Parameters.Add или AddRange. Пример

var cmd = new SqlCommand("INSERT INTO tbl_name (a, b, c) VALUES (@a, @b, @c)"); 
cmd.Parameters.AddRange(new[] { new SqlParameter("@a", field1), new SqlParameter("@b", field2), new SqlParameter("@c", field2) }); 
3

Вы не определили свой ЦМД ..
добавить эту строку

OledbCommand cmd=new OledbCommand(); 
+0

Я пробовал, что он не работает ... – Raghubar

+0

Я думаю, что что-то не так в безопасности доступа .. – Raghubar

0

(Опубликовано от имени О.П.).

Спасибо всем за вашу помощь, я получил решение. На самом деле в моем коде нет проблем. Проблема в том, что я создал файл базы данных в папке. Но когда я создаю проект, он создал дублированную базу данных с той же папкой имя файла в папке bin.

Поэтому каждый раз, когда он вставлен в эту базу данных. И я проверял файл базы данных, который я создал. Поэтому я думал, что это не работает.

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