2012-04-13 3 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 주입] (http://xkcd.com/327) 누구입니까? –

답변

3

비밀번호 제트/ACE의 SQL에서 reserved word입니다 :

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

고마워요. 저를 도와주세요. –

관련 문제