开发者

Help with linq to sql insert error

I have a database table with all columns to allow nulls for testing purposes. Between all of my columns I have int, varchar or bit datatypes. When I try to submit the form I get the following error message:

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

Here is the code:

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();
        };


Int32.MaxValue is 2,147,483,647, which is only 10 digits long.
Your values are too large for an Int32.

Your Phone, Fax, ZIP, and EIN fields should be strings (NVARCHARs), not numbers.


I'm betting it's the value for your phone number fields. Int32 is a 4 byte integer with a max value of 2147483647. Most phone numbers will overflow that.


My guess is it is on your phone #'s Int32's have a value of:

-2,147,483,648 to 2,147,483,647

So if you have the phone # of 517111111 (5,171,111,111), you are too large.

You should use varchar/char for phone numbers.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜