2016-06-27 2 views
0

enter image description hereenter image description here 내 MS Access 데이터베이스에 데이터를 삽입하려고합니다. 내 테이블 이름 SignUp. 사용자 코드에 의해 OleDBException 처리되지 않았습니다. 오류 메시지 : OverFlow

cmd.Parameters.Add("@name", OleDbType.VarChar).Value = txtNameSignUp.Text; 
cmd.Parameters.Add("@surname", OleDbType.VarChar).Value = txtSurnameSignUp.Text; 
cmd.Parameters.Add("@phone", OleDbType.VarChar).Value = txtPhoneSignUp.Text; 
cmd.Parameters.Add("@mail", OleDbType.VarChar).Value = txtMailSignUp.Text; 
cmd.Parameters.Add("@address", OleDbType.VarChar).Value = txtAddressSignUp.Text; 
cmd.Parameters.Add("@username", OleDbType.VarChar).Value = txtUserNameSignUp.Text; 
cmd.Parameters.Add("@password", OleDbType.VarChar).Value = txtPasswordSignUp.Text; 
cmd.ExecuteNonQuery(); 
cnn.Close(); 
cnn = null; 

나는 전화의 텍스트 상자에 대한 (OleDBType.Binary).Value = Convert.ToByte(txtPhoneSignUp.Text);을 시도했지만 그때는 "너무 큰"또는 "너무 작은"고 말했다.

sorgu = "@ 가입 ([이름], [성], [전화], [메일], [주소], [사용자 이름], [암호]) 값 (INTO INSERT 이름, 성 @ @ 전화, @ 메일, @ 주소, @ 사용자 이름, @ 암호); "; cmd = 새 OleDbCommand (sorgu, cnn); 대한

 //cmd.Parameters.AddWithValue("@name", txtNameSignUp.Text); 
     //cmd.Parameters.AddWithValue("@surname", txtSurnameSignUp.Text); 
     //cmd.Parameters.AddWithValue("@phone", Convert.ToDouble(txtPhoneSignUp.Text)); 
     //cmd.Parameters.AddWithValue("@mail", txtMailSignUp.Text); 
     //cmd.Parameters.AddWithValue("@address", txtAddressSignUp.Text); 
     //cmd.Parameters.AddWithValue("@username", txtUserNameSignUp.Text); 
     //cmd.Parameters.AddWithValue("@password", txtPasswordSignUp.Text); 

     cmd.Parameters.Add("@name", OleDbType.VarChar).Value = txtNameSignUp.Text; 
     cmd.Parameters.Add("@surname", OleDbType.VarChar).Value = txtSurnameSignUp.Text; 
     cmd.Parameters.Add("@phone", OleDbType.VarChar).Value = 
     cmd.Parameters.Add("@mail", OleDbType.VarChar).Value = txtMailSignUp.Text; 
     cmd.Parameters.Add("@address", OleDbType.VarChar).Value = txtAddressSignUp.Text; 
     cmd.Parameters.Add("@username", OleDbType.VarChar).Value = txtUserNameSignUp.Text; 
     cmd.Parameters.Add("@password", OleDbType.VarChar).Value = txtPasswordSignUp.Text; 

      cmd.ExecuteNonQuery(); 
      cnn.Close(); 
      cnn = null; 
+1

에 코드를 변경 전화 번호는 db의 숫자로 정의됩니까? 쿼리는보기 좋을 것이다. – Plutonix

+0

숫자와 텍스트를 시도했지만 둘 다 작동하지 않았습니다. – ibkanpak

+0

테이블의 정의를 표시하십시오 (그리고 이상적으로 사용중인 DBMS). 전화 열이 숫자 인 경우 매개 변수를 'VarChar'로 추가 할 수 없습니다. 그러나 숫자가 너무 많아서 대부분의 전화 번호는 숫자 열의 "너무 커"입니다. –

답변

0

OleDBType.Binary 당신은 바이트 []이 필요합니다, 그래서 당신이 추측하기 위하여려고하고있다

Encoding.ASCII.GetBytes (txtPhoneSignUp.Text)

+0

'인코딩'을 쓸 수 없습니다. 네임 스페이스가 다른가? – ibkanpak

+0

예, System.Text 네임 스페이스 – Jack

+0

에 있지만 작동하지만 새로운 예외가 있습니다. Byte []의 매개 변수 값을 String으로 변환하지 못했습니다. 내가 oledbtype.binary하려고하면 그것은 동일한 오류를 제공합니다. – ibkanpak

관련 문제