问题标签 [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.
mysql - VB.NET 2010 和 MySql - 为懒惰的人处理 DB NULL
我想用来自 MySql 数据库的数据初始化一个类。一些字段可以为空:
假设数据库中的最后两个字段可能为 NULL,因此在该字段上调用 GetString 会导致异常。
在获取每个字段之前,我当然可以编写代码来测试 NULL:
但是,如果您有很多字段,这将是“如果”的噩梦。
为此,我重写了 IIf VB 函数以使其更具类型化,从而避免强制转换:
这样我就可以写出类似的东西:
类型化的IIf在其他情况下效果很好,但不幸的是在这种情况下它不是,因为它是一个普通函数而不是语言关键字,每个 inpout 参数都会在调用期间进行评估,并且当字段为 NULL 时引发异常.
你能想出一个优雅的 if-less 解决方案吗?
.net - 我应该用什么来比较 DBNull ?使用 DBNull.Value 或 ToString().IsNullOrEmpty()
我可以DBnull
使用任何方法检查数据行上的 a。
要么通过使用
或通过做
在这两种情况下,我都会得到相同的结果。
但是哪一个是concptually正确的方法。哪个会使用更少的资源
c# - C# ??空合并运算符问题
我已将类人属性生日定义为可为空的日期时间?,那么为什么 null 合并运算符不能在以下示例中工作?
我得到的编译器错误是“运算符'??' 不能应用于“System.DateTime?”类型的操作数?和'System.DBNull'”
以下也有编译错误:
我按照 Refactor 的建议向 (object) 添加了一个强制转换,它编译了,但没有正常工作,并且在这两种情况下,值都作为 null 存储在 sqlserver db 中。
有人可以解释这里发生了什么吗?
我需要使用以下笨拙的代码:
c# - DBNull 的简洁用法?(三元?)
三元运算符似乎存在一些类型混淆。我知道这已在其他 SO 线程中得到解决,但它总是与可为空的。另外,就我而言,我真的只是在寻找更好的方法。
我希望能够使用
但相反,我坚持这一点:
三元运算符失败是因为 DBNull 和字符串之间不可能进行转换,而且考虑到 Value 是对象似乎很愚蠢,编译器将它踢回给我,我不得不关心。这个问题的可空版本的答案是将 null 转换为字符串并完成它;但是,DBNull 不能转换为字符串,所以那里没有运气。
有没有更简洁的方法来做到这一点(顺便说一句,不使用可空值?)
谢谢!
winforms - DataGridViewComboBox 空值
我有一个带有组合框列的 Windows 窗体 DataGridView。组合框列绑定到从 Linq to Entities 查询填充的数据源。我希望用户能够在组合框中选择“无”(将 NULL 值分配给基础数据源)。
我怎样才能做到这一点?
c# - 处理 DBNull.Value
我经常要处理连接到网格控件的 DataTables,自定义更新似乎总是会产生很多与 DBNull.Value 相关的代码。我在这里看到了一个类似的问题,但认为必须有更好的答案:
我发现我倾向于将我的数据库更新封装在方法中,所以我最终得到如下代码,我将 DBNull.value 移动到可为空的类型,然后返回进行更新:
这只是流程的一个例子,而不是工作代码。我意识到我可以做一些事情,比如使用“作为类型”来传递对象或吞下潜在的转换问题,以使 DBUll 直接为 null,但在我看来,这两者似乎都隐藏了潜在的错误,我喜欢可空类型的方法的类型安全。
在保持类型安全的同时有更清洁的方法吗?
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 特性?
c# - 每当类型验证失败时为绑定的 MaskedTextBox 返回 DBNull?
我有一个 MaskedTextBox 控件,其掩码为“00/00/0000”、PromptChar“_”和 DateTime 的 ValidatingType,绑定到数据库中的 DateTime 列,该列也可以接受空值。
我希望用户必须输入一个有效日期,或者为 DBNull 将其留空(即“__/__/____”)。
通过使用 TypeValidationCompleted 事件,我可以确定是否输入了有效日期,但我不知道如何在没有指定日期或指定无效日期时将值设置为 DBNull。
验证失败时如何从 MaskedTextBox 获取 DBNull 值?
.net - 可以分配 Nothing 和/或 DBNull 的自定义结构?
请任何人告诉我是否可以贴出可以分配 Nothing 和/或 DbNull.Values 并且也可以实例化为 Nothing 的自定义结构?
我要做的是创建一个自定义的 DateTime 对象,该对象可以从数据库查询中接收 DBNull.Value 并且还可以以 Nothing 开始生活。这可能吗?
提前致谢。
最好的问候,杜安
c# - 处理 DateTime DBNull
我在 SO 上看到了很多很多版本,但它们似乎都不能满足我的需求。
我的数据来自允许 DateTime 字段为空的供应商数据库。首先,我将数据拉入 DataTable。
我正在将 DataTable 转换为 List<> 进行处理。
那么,在这种情况下如何检查 DBNull 呢?我试图写一个方法。