Помогите с linq to sql ошибка вставки - PullRequest
0 голосов
/ 21 января 2011

У меня есть таблица базы данных со всеми столбцами, чтобы разрешить нулевые значения для целей тестирования. Между всеми моими столбцами у меня есть int, varchar или битовые типы данных. Когда я пытаюсь отправить форму, я получаю следующее сообщение об ошибке:

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

Ответы [ 3 ]

2 голосов
/ 21 января 2011

Int32.MaxValue равно 2,147,483,647, длина которого составляет всего 10 цифр.
Ваши значения слишком велики для для Int32.

Ваш телефон, факс, ZIPи поля EIN должны быть строками (NVARCHAR), а не числами.

1 голос
/ 21 января 2011

Я думаю, это на вашем телефоне # Int32 имеют значение:

-2 147 483 648 до 2 147 483 647

Так что, если у вас есть телефонный номер 517111111 (5 171 111 111), вы слишком большой.

Вы должны использовать varchar / char для телефонных номеров.

1 голос
/ 21 января 2011

Бьюсь об заклад, это значение для полей вашего номера телефона.Int32 - это 4-байтовое целое число с максимальным значением 2147483647. Большинство телефонных номеров будут переполнены.

...