2012-04-13 9 views
1

У меня возникла проблема, когда я подключаюсь к базе данных доступа, а затем получаю ошибку Ошибка синтаксиса в инструкции INSERT INTO. и мой код:Ошибка синтаксиса в инструкции INSERT INTO

string str = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/Geeta/Desktop/Database2.accdb;Persist Security Info=False;"); 
     OleDbConnection conn = new OleDbConnection(str); 
     conn.Open(); 
     string query = "insert into data (FirstName,Email,Password,Address) values ('" + 
      txt_fstname.Text + "','" + txt_email.Text + "', '" + 
      txt_pass.Text + "', '" + txt_add.Text + "')"; 
     OleDbCommand cmd = new OleDbCommand(query,conn); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
     Response.Redirect("Default.aspx"); 

plz предлагаю меня.

"Спасибо"

+0

Не могли бы вы добавить сообщение об ошибке? и строку запроса, которая создается во время выполнения. Возможно, в текстовых окнах есть специальные символы. –

+3

Пожалуйста, не создавайте запрос вручную, добавляя строки, целые числа, даты в команду: используйте 'Parameters', и ваша жизнь будет проще !!! – Marco

+2

[SQL Injection] (http://xkcd.com/327) кто-нибудь? –

ответ

3

Пароль в Jet/ACE SQL reserved word, так что вы должны заключить его в квадратные скобки:

string query = "insert into data (FirstName,Email,[Password],Address) values ('" + 
+0

Спасибо ... за помощь мне. –

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