Это первый случай, с которым я столкнулся - конечно, это не так много, но тем не менее мне нужно проконсультироваться с коллективом в качестве моих поисков, пока показал, что это можно сделать, я не могу это обработать.Nullable (int?) Продолжает бросать исключение, отличное от нуля
Проблема заключается в том, что если пользователь покидает текстовое поле пустым, C# автоматически вводит ноль в postback и в базу данных. Я просто хочу, чтобы текстовое поле осталось пустым.
У меня есть класс есть свойство объявляется:
private int? _PageNumber = null;
public int? PageNumber
{
get { return _PageNumber; }
set { _PageNumber = value; }
}
в моем файле кода у меня есть:
if (tbPageNumber.Text != "")
ia.PageNumber = Convert.ToInt32(tbPageNumber.Text);
else
ia.PageNumber = null;
и это, где я получаю исключение:
CS0037: Cannot convert null to 'int' because it is a non-nullable value type
Так что я думал, что если я не могу изменить тип, возможно, я могу изменить выход. Так я думал, что, возможно, я могу притворяться его, помещая это в текст имущества texbox в:
'<%# Eval("PageNumber") == 0 ? null:Eval("PageNumber") %>'
Это бросает CS0019: Operator '==' cannot be applied to operands of type 'object' and 'int'
исключение.
Почему так чертовски упрямо ???
Это не похоже на исключение - это похоже на проблему с компиляцией. Можете ли вы воспроизвести это в коротком, но полном консольном приложении, чтобы задача ASP.NET не отображалась? –
CS0037 больше похож на ошибку компилятора, чем исключение. Есть действительно большая разница. –