我在asp.net中有很多TextBOX,它接受来自用户的值并通过SQL SERVER将它存储到SQL DB中。 当用户没有在文本框中输入值时,这意味着我可以允许表中的该字段为空,但如果它的整数变量存储0,那是因为
int HostelFees ;
HostelFees = TextBox1.Text;
//function called to store the hostel fee
insertFee(hostelFees);
在数据库中它存储0,我不想要它但它是null。
我经历了很多文档并且只略微了解了ISDBNULL,但是在插入如何插入null时仍然感到困惑。 :(并且我没有在函数insertFee(hostelFees)
中使用任何存储过程的..infact我只是使用command.ExecuteNonQuery来插入它
任何人都可以给我正确的解释或我所指的链接。 谢谢,
答案 0 :(得分:1)
你的整数值应该可以为空,只需添加?在类型声明后
int? HostelFees ;
答案 1 :(得分:1)
您应该考虑使用int?
,int
HostelFees.HasValue
。在这种情况下,您可以使用HostelFees.Value
检查来查看是否存储了null,并使用null
来使用整数部分。
请注意,在您的示例中,您直接将字符串值存储到整数变量中。那不行。你想要的是先解析它,然后存储int? HostelFees = null;
int parsedValue;
if (int.TryParse(TextBox1.Text, out parsedValue)) {
HostelFees = parsedValue;
}
//function called to store the hostel fee
insertFee(hostelFees);
如果它不是整数。像这样:
parameter.Value = (HostelFees.HasValue ? HostelFees.Value : DbNull.Value);
而不是将整数值直接分配给DbParameter,您可以使用以下结构:
{{1}}