问题标签 [dbnull]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1994 浏览

mysql - VB.NET 2010 和 MySql - 为懒惰的人处理 DB NULL

我想用来自 MySql 数据库的数据初始化一个类。一些字段可以为空:

假设数据库中的最后两个字段可能为 NULL,因此在该字段上调用 ​​GetString 会导致异常。

在获取每个字段之前,我当然可以编写代码来测试 NULL:

但是,如果您有很多字段,这将是“如果”的噩梦。

为此,我重写了 IIf VB 函数以使其更具类型化,从而避免强制转换:

这样我就可以写出类似的东西:

类型化的IIf在其他情况下效果很好,但不幸的是在这种情况下它不是,因为它是一个普通函数而不是语言关键字,每个 inpout 参数都会在调用期间进行评估,并且当字段为 NULL 时引发异常.

你能想出一个优雅的 if-less 解决方案吗?

0 投票
4 回答
17232 浏览

.net - 我应该用什么来比较 DBNull ?使用 DBNull.Value 或 ToString().IsNullOrEmpty()

我可以DBnull使用任何方法检查数据行上的 a。

要么通过使用

或通过做

在这两种情况下,我都会得到相同的结果。

但是哪一个是concptually正确的方法。哪个会使用更少的资源

0 投票
3 回答
4510 浏览

c# - C# ??空合并运算符问题

我已将类属性生日定义为可为空的日期时间?,那么为什么 null 合并运算符不能在以下示例中工作?

我得到的编译器错误是“运算符'??' 不能应用于“System.DateTime?”类型的操作数?和'System.DBNull'”

以下也有编译错误:

我按照 Refactor 的建议向 (object) 添加了一个强制转换,它编译了,但没有正常工作,并且在这两种情况下,值都作为 null 存储在 sqlserver db 中。

有人可以解释这里发生了什么吗?

我需要使用以下笨拙的代码:

0 投票
4 回答
5240 浏览

c# - DBNull 的简洁用法?(三元?)

三元运算符似乎存在一些类型混淆。我知道这已在其他 SO 线程中得到解决,但它总是与可为空的。另外,就我而言,我真的只是在寻找更好的方法。

我希望能够使用

但相反,我坚持这一点:

三元运算符失败是因为 DBNull 和字符串之间不可能进行转换,而且考虑到 Value 是对象似乎很愚蠢,编译器将它踢回给我,我不得不关心。这个问题的可空版本的答案是将 null 转换为字符串并完成它;但是,DBNull 不能转换为字符串,所以那里没有运气。

有没有更简洁的方法来做到这一点(顺便说一句,不使用可空值?)

谢谢!

0 投票
1 回答
730 浏览

winforms - DataGridViewComboBox 空值

我有一个带有组合框列的 Windows 窗体 DataGridView。组合框列绑定到从 Linq to Entities 查询填充的数据源。我希望用户能够在组合框中选择“无”(将 NULL 值分配给基础数据源)。

我怎样才能做到这一点?

0 投票
4 回答
17991 浏览

c# - 处理 DBNull.Value

我经常要处理连接到网格控件的 DataTables,自定义更新似乎总是会产生很多与 DBNull.Value 相关的代码。我在这里看到了一个类似的问题,但认为必须有更好的答案:

处理 DBNull 的最佳方法是什么

我发现我倾向于将我的数据库更新封装在方法中,所以我最终得到如下代码,我将 DBNull.value 移动到可为空的类型,然后返回进行更新:

这只是流程的一个例子,而不是工作代码。我意识到我可以做一些事情,比如使用“作为类型”来传递对象或吞下潜在的转换问题,以使 DBUll 直接为 null,但在我看来,这两者似乎都隐藏了潜在的错误,我喜欢可空类型的方法的类型安全。

在保持类型安全的同时有更清洁的方法吗?

0 投票
3 回答
13403 浏览

c# - C#/Oracle10g = null vs DBNull.Value vs String.Empty

我第一次尝试从 C# 访问 Oracle。我发现 Oracle 不喜欢具有(C#)VarChar值的参数。null我本来希望会有一些隐式转换,但我很欣赏这种差异。

所以我需要捕获这些空值并提供DBNull.Value,确定吗?最明显的方法是使用合并运算符??

除了它不接受System.DBNull...的值,所以我必须使用:

...这肯定与:

..这也有效。

但我一直明白,根据 ANSI SQL 规则,一个空字符串 ("") != 一个 NULL 值......但它似乎在 Oracle 中。

无论如何,我的问题是,处理空字符串值的最佳、实用或理论上的方法是什么?有没有我没有确定的巧妙替代方案?或者这只是我们接受的另一个 Oracle 特性?

0 投票
0 回答
442 浏览

c# - 每当类型验证失败时为绑定的 MaskedTextBox 返回 DBNull?

我有一个 MaskedTextBox 控件,其掩码为“00/00/0000”、PromptChar“_”和 DateTime 的 ValidatingType,绑定到数据库中的 DateTime 列,该列也可以接受空值。

我希望用户必须输入一个有效日期,或者为 DBNull 将其留空(即“__/__/____”)。

通过使用 TypeValidationCompleted 事件,我可以确定是否输入了有效日期,但我不知道如何在没有指定日期或指定无效日期时将值设置为 DBNull。

验证失败时如何从 MaskedTextBox 获取 DBNull 值?

0 投票
2 回答
433 浏览

.net - 可以分配 Nothing 和/或 DBNull 的自定义结构?

请任何人告诉我是否可以贴出可以分配 Nothing 和/或 DbNull.Values 并且也可以实例化为 Nothing 的自定义结构?

我要做的是创建一个自定义的 DateTime 对象,该对象可以从数据库查询中接收 DBNull.Value 并且还可以以 Nothing 开始生活。这可能吗?

提前致谢。

最好的问候,杜安

0 投票
6 回答
44656 浏览

c# - 处理 DateTime DBNull

我在 SO 上看到了很多很多版本,但它们似乎都不能满足我的需求。

我的数据来自允许 DateTime 字段为空的供应商数据库。首先,我将数据拉入 DataTable。

我正在将 DataTable 转换为 List<> 进行处理。

那么,在这种情况下如何检查 DBNull 呢?我试图写一个方法。