gpt4 book ai didi

.Net 将 NULL 值从变量值插入到 SQL Server 数据库中

转载 作者:太空狗 更新时间:2023-10-30 01:48:20 24 4
gpt4 key购买 nike

也有类似的问题,但答案不是我想要的。如果引用为 NULL 或尚未分配值,我想将 NULL 值插入 SQL Server 数据库。目前我正在测试 null,它看起来像

String testString = null;

if (testString == null)
{
command.Parameters.AddParameter(new SqlParameter("@column", DBNull.Value);
}
else
{
command.Parameters.AddParameter(new SqlParameter("@column", testString);
}

这对我来说看起来和感觉起来都非常笨拙。我有相当多的值要插入到数据库中并像上面那样对它们进行测试非常冗长。 .Net 不以某种方式处理这个问题吗?我想也许如果我使用字符串而不是字符串,但这似乎也不起作用。环顾四周,我发现了有关使用 Nullable 类型的文章。

System.Nullable<T> variable

这似乎适用于原语,int?,char?双倍的?和 bool ?所以这可能对那些有用,但字符串呢?我在这里错过了什么吗?我应该为原始值和字符串值使用什么类型,这样我就不必在插入值之前重复测试它们。

编辑:在我得到太多关于三元运算符的答案之前。我喜欢他们,但不是在这种情况下。对我来说,需要测试该值并拥有所有这些额外的逻辑是没有意义的,当这种事情可以在 .Net 框架的较低位置实现时,如果我知道要提供什么类型,那么它就会得到它免费。

编辑:好吧,伙计们帮我制定我的攻击计划。我将为我的原语(int?、double?等)使用 Nullable,对于我的字符串,我将使用 String,但 ??测试。这使事情不那么冗长。有什么我在这里遗漏的吗,比如可能丢失了一些语义?

最佳答案

比三元更好的是双问号 (??) 运算符。取第一个非空值。所以:

string x = null;
command.Parameters.AddParameter(
new SqlParameter("@column", (object)x ?? DBNull.Value);

会给你一个值为 DBNull.Value 的参数,但是

string x = "A String";
command.Parameters.AddParameter(
new SqlParameter("@column", (object)x ?? DBNull.Value);

会给你一个以“A String”为值的参数。

关于.Net 将 NULL 值从变量值插入到 SQL Server 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619230/

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