这是我第一次遇到这种情况-当然这并没有太多意义,但是我需要与集体协商,因为我的搜索表明可以完成,但我无法工作出来。
问题是,如果用户将文本框留空,C# 会在回发和数据库中自动输入零。我只想让文本框留空。
我有一个类,该属性被声明:
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 的 text 属性中来伪造它:
'<%# Eval("PageNumber") == 0 ? null:Eval("PageNumber") %>'
这会引发CS0019: Operator '==' cannot be applied to operands of type 'object' and 'int'
异常。
怎么这么固执???