2013-05-17 3 views
1

삽입 문에 구문 오류가 나타납니다. Microsoft Access 데이터베이스를 사용하고 있습니다. 데이터베이스에ASP.NET 마이크로 소프트 액세스 삽입 db 오류

protected void Button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("measurmentdb.mdb")); 
     OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,Name,Surname,Password,Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con); 
     cmd.Parameters.AddWithValue("@un", txtusername.Text); 
     cmd.Parameters.AddWithValue("@name", txtname.Text); 
     cmd.Parameters.AddWithValue("@sna", txtsurname.Text); 
     cmd.Parameters.AddWithValue("@pw", txtpassword.Text); 
     cmd.Parameters.AddWithValue("@em", txtemail.Text); 
     cmd.Parameters.AddWithValue("@pn", txtphone.Text); 
     cmd.Parameters.AddWithValue("@cv", txtcv.Text); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
    catch (Exception ex) 
    { 

     throw ex; 
    } 
} 

모든 텍스트 형식으로되어 있습니다 :

tbl_Users: 
Username 
Name 
Surname 
Password 
Email 
Phonenumber 
CV 

내가 잘못이 무엇인지 알아낼 수 없었다 여기에 코드 샘플입니다. 당신의 도움에 감사드립니다.

답변

3

NAMEPASSWORD은 MS Access에서 reserved words입니다. 예약 된 단어가 이미 사용중인 경우

[NAME][PASSWORD]

OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,[Name],Surname,[Password],Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con); 

처럼 대괄호를 사용하여, 당신은 괄호와 단어의 각 발생 ([ ])를 둘러싼 에 의해 오류 메시지를 피할 수 있습니다. 그러나 최상의 해결책은 이름을 예약되지 않은 단어로 변경하는 것입니다.

+0

감사합니다. – Alasse

+0

@Alasse 환영합니다';)' –

관련 문제