使用isDBNULL将null存储回数据库

时间:2010-07-28 07:31:17

标签: sql

我在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来插入它

任何人都可以给我正确的解释或我所指的链接。 谢谢,

2 个答案:

答案 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}}