问题标签 [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 投票
1 回答
1121 浏览

asp.net - 与自定义表达式的两种方式绑定?

我在我的 asp.net 项目中使用 gridview 来查看和修改数据库中的一些记录。数据库有两列:start_date 和 end_date。创建新记录时,这些列包含空值,但稍后可以使用 gridview update 命令对其进行修改。

在 gridview 中,我有两个模板字段(名称为 start_date 和 end_date),其中放置了两个日历控件。单击 gridview 的更新链接后,由于 null 值绑定到日历,它总是返回错误。我已经使用这个辅助函数来解决它:

并在日历控件的 SelectedDate 中使用了这两个自定义表达式:

问题是在选择日期时绑定日历的双向数据不会更新数据库表。有什么解决方法吗?或者,将不胜感激更好的解决方案。

0 投票
1 回答
873 浏览

sql - SQL 视图从非空表推断可空列?

我有一个带有非空“数量”(十进制)和“状态”(int)列的产品表,并且我使用以下案例表达式在该表上创建了一个视图:

ProductTypeId 被正确推断为非空值。但是,此视图的 Quantity 列被推断为可为空,即使基础列不可为空。这对我来说没有任何意义。

在这种情况下,我可以使用 ISNULL/COALESCE 提供默认值并强制不可为空,但没有有意义的默认值,据我了解,这首先不应该发生。有什么想法吗?

0 投票
8 回答
3764 浏览

c# - 强制转换 NULL 值

我正在尝试使用数据库表中的值填充类对象。该someObject.Property字段是可为空的 int 类型。

所以,如果SomeFieldnullConvertDBNull报错。我应该为此使用特定的方法吗?

0 投票
4 回答
6286 浏览

asp.net - ASP.NET 内联表达式中的 DBNull 到 String 有转换错误

嘿伙计们,我数据库中的一个表有一个字段“描述”,它允许为空。这会导致在 ASP.NET 中呈现页面时出现问题,因为我想确保我正在解码字符串,因为我正在对其进行编码,因为我正在对其进行编码。描述中自然有一些 NULL字段,我想保留。

所以我的 ASP.NET 页面有这个代码

所以当我渲染页面时,我会得到:

在我看来,我有两个选择:

  • 加载期间绑定

或者

  • 使表成为非 NULL 表并改用空值

有人可能有更好的主意吗?

0 投票
1 回答
4874 浏览

select - 从 sql server db 中选择 NULL 值

我在选择语句时遇到问题。

看起来像:

但我不知道如何使 DBNull.Value 工作。我也尝试过只使用“”,但它也不起作用。

请对如何重写此语句有任何想法?谢谢你。

0 投票
2 回答
742 浏览

asp.net - DropDownList 无法绑定到 DbNull

我有一个 DropDownList 试图绑定到 DbNull,但它对此并不满意。我已经看到有关使用 value=" " 创建 ListItem 的建议,但这不起作用。

任何帮助将非常感激。

0 投票
1 回答
2599 浏览

c# - Informix (C#):如何正确设置/取消设置 blob 字段?

IBM Informix SDK:

陈述:Update mytable set myblobcolumn = ? where myid = 1;

如果我用另一个IfxBlob对象更新它,它工作正常,但如果我用它更新它,DBNull.Value我会得到一个错误。任何人都知道如何使用参数化更新“取消设置”blob 列?


更新:

好的,我做了一些研究,并减少了一些东西。

首先,我发现如果我IfxType在生成参数时显式声明,当从数据库中的空值来回切换并在其中有一个实际的 IfxBlob 时,.NET 驱动程序将无法转换 DBNull.Value 甚至是 Byte[] 数组数据库。基本上:

  • 如果该列包含一个值并且我希望将 null 存储在其中,那么我必须将我的参数类型转换如下UPDATE mytable SET myblobcolumn = ?::byte WHERE myid = 1;:这使我可以存储 的值而DBNull.Value不会出现任何错误。
  • 如果该列包含一个空值并且我希望在其中存储一个实际值,那么我必须按如下方式对我的参数进行类型转换UPDATE mytable SET myblobcolumn = ?::blob WHERE myid = 1;:这允许我存储 IfxBlob 值。

现在,为了避免所有这些,我将 Parameter 初始化减少为仅设置 ParameterName 属性:(var param = new IfxParameter { ParameterName = "myblobcolumn" }甚至只是为了能够从集合中引用它,仅此而已)。这让我可以保留我的陈述,而不必对我的参数进行类型转换。

所以......我剩下以下内容:

陈述:UPDATE mytable SET myblobcolumn = ? where myid = 1;

这工作正常,除了我认为我在 Informix .NET 驱动程序 (3.50.xC7) 中发现了一个类似于this的错误。基本上,提供的链接表明发现了一个错误,该错误不允许 .NET 驱动程序在执行插入时正确使用 byte[] 数组来创建 blob。这已经得到修复,因为我cmd.Parameters["myblob"].Value = new Byte[] { 0x1, 0x2 };在执行INSERT语句时可以做到这一点。但是,当将 byte[] 数组用于UPDATE语句时,驱动程序仍然会出现异常。因此,我必须实际创建 IfxBlob 实例并使用它们而不是实际的 byte[] 数组。

如果这不是驱动程序中的错误,那么这个问题需要保持开放,以查看设置/取消设置 blob 字段的正确方法是使用 byte[] 数组进行更新。

0 投票
4 回答
564 浏览

c# - DBNull 到底需要什么?

可能重复:
DBNull 的意义何在?

从我开始使用 .NET 开始,我就一直问自己一个问题:

为什么我们需要 DBNull 类型?一个简单的空引用还不够吗?

MSDN 说 DBNull “表示不存在的值”。从逻辑的角度来看——这句话解释了为什么不能使用空引用——因为它是空引用而不是缺乏价值。但是引入一个会引起很多麻烦的类型就足够了吗?

顺便说一句:如果有人有话要为我辩护,DBNull我将不胜感激。

0 投票
3 回答
364 浏览

.net - 将 Byte() 转换为 Date() 的问题

我在 DAL 中有一个查询,结果是 1 个项目,一个日期。它是日期或空值。但是当值为空时我得到一个错误。

从类型“DBNull”到类型“Date”的转换无效。

询问

这就是我调用我的函数的方式。

如果支付了押金,表格中有日期,如果没有,则为空。

欢迎所有帮助!

0 投票
3 回答
1378 浏览

c# - ?? system.DBNull 中的运算符

是否有一个运算符或内置函数来简化这一点:

我知道我可以做类似的事情:

但我有很多对象,我想避免它:

我还可以创建一个函数:

最简单的方法是使用 ?? 运算符,但问题是 'dataColumn' 与 ?? 不兼容 因为有时会返回 system.DBNull 而不是 null。查看立即窗口输出:

我想知道是否有一些(字符串)函数或运算符可以返回“-”如果 dataColumn.toString()=="" 没有 if..then (因为我必须为所有这些. 否则我宁愿使用上面显示的函数方法。