gpt4 book ai didi

c# - 将 DBNull.Value 和空文本框值传递给数据库

转载 作者:可可西里 更新时间:2023-11-01 08:39:45 29 4
gpt4 key购买 nike

<分区>

我的页面上有一些文本框可以为空,因为它们是可选的,而且我有这个 DAL 代码

parameters.Add(new SqlParameter("@FirstName", FirstName));
parameters.Add(new SqlParameter("@LastName", LastName));
parameters.Add(new SqlParameter("@DisplayName", DisplayName));
parameters.Add(new SqlParameter("@BirthDate", BirthDate));
parameters.Add(new SqlParameter("@Gender", Gender));

这些字段中的任何一个都可以为空。问题是当它们为空时我收到 Procedure XXX requires @FirstName which was not supplied

然后我将我的代码更改为

parameters.Add(new SqlParameter("@FirstName", String.IsNullOrEmpty(FirstName) ? DBNull.Value : (object)FirstName));
parameters.Add(new SqlParameter("@LastName", String.IsNullOrEmpty(LastName) ? DBNull.Value : (object) LastName));
parameters.Add(new SqlParameter("@DisplayName", String.IsNullOrEmpty(DisplayName) ? DBNull.Value : (object) DisplayName));
parameters.Add(new SqlParameter("@BirthDate", BirthDate.HasValue ? (object)BirthDate.Value : DBNull.Value));
parameters.Add(new SqlParameter("@Gender", String.IsNullOrEmpty(Gender) ? DBNull.Value : (object) Gender));

但这对我来说看起来很乱,尤其是转换为 object,因为三元语句要求两个值是同一类型。

为什么数据库中的NULL不处理空字符串或空字符串?如果我必须将其转换为 DBNull.Value 是否有更简洁的方法?将值保存为数据库中的空字符串可能会有所帮助,但在数据库中查询 NULL 也会变得困惑

请就常见做法或类似做法提出您的建议。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com