我有一个SQL Server表,其中包含几个varchar类型的列,这些列可以为空。如果文本框为空,则aspx页面发布数据时,数据库表列将更新为空字符串。
要保持空值而不是将其替换为空字符串,我可以使用逻辑将空字符串更改为中间层c#代码中的System.DBnull,或者在存储过程中执行此操作。
还有其他更好的方法来处理这种情况吗?
答案 0 :(得分:4)
您可以使用触发器或在proc中执行此操作,您可以使用NULLIF
函数
实施例
DECLARE @d VARCHAR(20)
SELECT @d = ''
SELECT NULLIF(@d,'')
答案 1 :(得分:0)
我可能会把它放在根据空字符串和空字符串之间的区别做出决定的代码附近。如果它们的含义或应用程序的结果行为之间没有区别,我建议将该字段设置为不可为空并且使用空字符串。