Member 13931382 Ответов: 1

Входная строка была не в правильном формате, когда я нажал кнопку поиска


если (txt_search.Текст == "" || инт.Синтаксический анализ(txt_salary.Текст)&ЛТ;=10000) { строка дисплей = "введите идентификатор сотрудника, чтобы завершить поиск"; ClientScript.RegisterStartupScript(это.GetType(), "пустое текстовое поле", "alert('" + display + "');", true); }

может ли кто-нибудь объяснить, как я могу удалить эту ошибку я хочу найти сотрудника, имеющего зарплату больше 10000, когда я нажимаю кнопку поиска, была ошибка, входная строка не была в правильном формате.

Что я уже пробовал:

Я пробовал метод parse для преобразования строки

Member 13931382

Я хочу сделать систему управления персоналом и искать только те записи сотрудников, зарплата которых превышает 10000

CHill60

Что находится в txt_Salary.Text?

Member 13931382

Зарплата сотрудника

CHill60

Нет - какое значение находится в txt_Salary.Текст, когда вы получаете ошибку?

Member 13931382

в соответствии с заданным условием я ввел менее 10000 но сообщение об ошибке print on screen input string не было в правильном формате

Patrice T

вас спрашивают точное содержание "txt_salary"

Member 13931382

точное содержание?

CHill60

..-comme ses pieds, non?

Patrice T

именно так :)

Patrice T

Каково значение 'txt_salary' ?

Member 13931382

Зарплата сотрудника

CHill60

Фактическое значение - это то, что нам нужно, и оно явно не является целочисленным значением

Member 13931382

это не целое число это было строковое значение поэтому я использовал метод parse для преобразования потому что мне нужно целое число

CHill60

Ты все усложняешь, и я не знаю почему ... каково содержимое текстового поля, когда вы получаете ошибку... не описывайте их, просто скажите нам, что это такое? фактический содержание есть! Вы используете int.Parse ... а это неудача ... потому что содержимое текстового поля не соответствует тому, как будет выглядеть целое число"

1 Ответов

Рейтинг:
2

OriginalGriff

Сообщение об ошибке, которое вы получаете, говорит: "строка, которую вы пытались преобразовать, не содержит числа, поэтому я не могу ее преобразовать" - и это означает, что все, что пользователь ввел в нее txt_salary.Text это не просто цифры - это может быть "12 34", или "Hello", или "$10,000" или , может быть "10000.00"

Вместо того, чтобы использовать тип int.Разобрать, в верхней части способ использовать int.Вместо этого метод tryparse :

int salary;
if !(int.TryParse(txt_salary.Text, out salary))
    {
    ... Bad input by user, report it to him ...
    return;
    }
А также проверить все остальные поля ввода. Затем вы можете использовать проверенные значения в salary и такие линейки уверены, что они будут работать.