2011-01-21 3 views
0

테스트 목적으로 널을 허용하는 모든 열이있는 데이터베이스 테이블이 있습니다. 내 모든 컬럼 사이에 int, varchar 또는 bit 데이터 유형이 있습니다. 내가 양식을 제출하려고 할 때 다음과 같은 오류 메시지가 : 여기 linq to sql 삽입 오류 도움말

Value was either too large or too small for an Int32. 

코드입니다 :

using (storeDataContext db = new storeDataContext()) 
     { 

      db.Dealerssses.InsertOnSubmit(new Dealersss 
      { 
       AppFName = txtFName.Text, 
       AppLName = txtLName.Text, 
       AppTitle = ddlTitles.SelectedItem.Text, 
       AppPhone = Convert.ToInt32(txtPhone.Text), 
       AppEmail = txtEmail.Text, 
       AppAddress = txtAddress.Text, 
       AppCity = txtCity.Text, 
       AppState = txtState.Text, 
       AppZip = Convert.ToInt32(txtZip.Text), 
       BusName = txtBusName.Text, 
       BusCA = Convert.ToInt32(txtBusResale.Text), 
       BusContact = txtBusContact.Text, 
       BusDBA = txtDBA.Text, 
       BusEIN = Convert.ToInt32(txtBusEIN.Text), 
       BusEmail = txtBusEmail.Text, 
       BusFax = Convert.ToInt32(txtBusFax.Text), 
       BusMonth = ddlMonthStart.SelectedItem.Text, 
       BusNumEmployees = Convert.ToInt32(txtBusEmployees.Text), 
       BusPhone = Convert.ToInt32(txtBusPhone.Text), 
       BusYear = int.Parse(txtYearStart.Text), 
       Active = false 
      }); 
      db.SubmitChanges(); 
     }; 
+0

오류를 읽고 계셨습니까? – SLaks

+0

@slaks의 경우 폼에 게시되는 값은 1에서 15 자리 사이이므로 int32의 경우 너무 큰 값을 사용할 수 없습니다. –

+2

코드가 유효한 우편 번호 07055를 엉망으로 만들 것입니다. ** 숫자가 아닌 데이터를 정수 열에 저장하지 마십시오! ** – SLaks

답변

2

Int32.MaxValue는 10 자리입니다 2,147,483,647이다.
이 너무 커서 Int32 인 경우입니다.

전화, 팩스, ZIP 및 EIN 필드는 숫자가 아닌 문자열 (NVARCHAR)이어야합니다.

+0

ha int32에 대한 사양을 읽을 때 2,147,483,647 자릿수로 읽습니다. –

1

귀하의 전화 번호란에 맞는 금액 일 것입니다. Int32는 최대 값이 2147483647 인 4 바이트 정수입니다. 대부분의 전화 번호가 오버플로됩니다.

1

내 생각 엔 휴대 전화 번호의 INT32의이 값이에 그것입니다 :

-2,147,483,648 당신이 517,111,111 (5,171,111,111)의 전화 번호가있는 경우 그래서

2,147,483,647을, 당신은 너무 큰 .

전화 번호는 varchar/char을 사용해야합니다.