ошибка текстового поля в длинном формате - PullRequest
0 голосов
/ 25 июля 2010

Я делаю проект с SQL Server 2005 и VS 2008,

Я проанализировал текстовое поле для длинной переменной (номер телефона), потому что бэкэнд хранит номер телефона в bigint.

long phone = long.Parse(TextBox4.Text);

Это прекрасно работает, когда я вставляю свой номер телефона, но если человек не знает или не хочет его вводить, у меня есть номер телефона, равный нулю.

Если япросто нажмите кнопку отправки, не вводя номер телефона, я получаю эту ошибку !!?

Server Error in '/' Application.

Input string was not in a correct format.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error:    

Line 48:     string deptName = TextBox2.Text;
Line 49:     string deptLoc = TextBox3.Text;
Line 50:     long phone = long.Parse(TextBox4.Text);
Line 51:     string flag = "";

Пожалуйста, исправьте мою ошибку, я не понимаю, какой другой способ ее проанализировать!

Ответы [ 3 ]

2 голосов
/ 25 июля 2010

Номер телефона должен включать скобки, пробелы, тире, символы +, символы # и, конечно, множество телефонных номеров начинаются с 0 (и поэтому 01234 567891 становится 1234567891).

Вам следует всегда сохранить номер телефона в виде строки.Очень немногие телефонные номера могут быть сохранены как длинные или целые числа.

Надеюсь, это поможет.

1 голос
/ 25 июля 2010

Parse() не может разобрать null или неверный ввод и выдает ошибку, TryParse() не:

long l;
if (long.TryParse(textBox.Text, out l))
{
    // success
}
else
{
    // not. probably throw an exception yourself. or just ignore
}
1 голос
/ 25 июля 2010

Попробуйте использовать метод Boolean long.TryParse(string, byref long). Это не выдает исключение, если анализ не удался - вместо этого он возвращает логическое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...