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

c# - 操作员 '??' 不能应用于“字符串”和“System.DBNull”类型的操作数

我有以下 C# 代码:

但它会引发以下编译错误:

运算符??不能应用于类型stringSystem.DBNull

为什么编译器不允许这种语法?

0 投票
1 回答
309 浏览

.net - 数据集日期时间 Dbnull

如何解决问题?当 dbnul 飞行异常时。

0 投票
6 回答
15978 浏览

.net - DBNull 的意义何在?

在 .NET 中有null引用,它在任何地方都用来表示对象引用是空的,然后是DBNull,它被数据库驱动程序(以及少数其他驱动程序)用来表示......几乎相同的东西。自然,这会造成很多混乱,并且必须大量执行转换例程等。

那么,为什么最初的 .NET 作者决定这样做呢?对我来说这毫无意义。他们的文档也没有任何意义:

DBNull 类表示一个不存在的值。例如,在数据库中,表的一行中的列可能不包含任何数据。也就是说,该列被认为根本不存在,而不仅仅是没有值。DBNull 对象表示不存在的列。此外,COM 互操作使用 DBNull 类来区分指示不存在值的 VT_NULL 变体和指示未指定值的 VT_EMPTY 变体。

关于“列不存在”的废话是什么?存在一列,它只是没有特定行的值。如果它不存在,我会在尝试访问特定单元格时遇到异常,而不是DBNull! 我可以理解区分VT_NULLand的必要性VT_EMPTY,但那为什么不做一个COMEmpty类呢?这将更适合整个 .NET 框架。

我错过了什么吗?谁能阐明为什么DBNull发明以及它有助于解决哪些问题?

0 投票
18 回答
326346 浏览

c# - 将 null 分配给 SqlParameter

下面的代码给出了一个错误——“没有从 DBnull 到 int 的隐式转换”。

0 投票
6 回答
21110 浏览

.net - 检查 DBNull 会引发 StrongTypingException

我正在使用数据集从数据库中提取数据。一行中的一个字段是NULL。我知道这个。但是,以下 vb.net 代码会抛出一个StrongTypingException(在数据集设计器中自动生成的 get_SomeField() 方法中):

p>

根据文档和这个问题,应该没问题。

编辑:If aRow.SomeField is DBNull.Value Then也返回相同的错误。啊。

0 投票
9 回答
22153 浏览

c# - 如何通过列名检查 MySqlDataReader 中的 NULL?

如何检查NULLopen 中的值MySqlDataReader

以下不起作用;它总是击中else

rdr.IsDbNull(int i)只接受列号,不接受名称。

0 投票
2 回答
789 浏览

asp.net-mvc - 无法处理完全合法的 DBNULL。使用 DataSets DataTables 作为模型数据视图传递。ASP.NET MVC2

我喜欢 MVC,但不幸的是,所有教程、演示和所有资源都使用实体框架来生成 ViewData,并且大多数使用 LINQ to SQL 而不是 DataSets。
我正在重用现有的业务逻辑,而客户(他本身就是一个伟大的编码员)想要继续使用数据集......所以我无法摆脱这些。

我有一张表,其中包含在数据库中允许为 NULL 的列。当我尝试访问这些......甚至检查它是否为空时,我得到一个异常:

“表 'FNN_CARRIERS_DESC' 中列 'FNN_CARRIERS_DESC' 的值为 DBNull”

现在这是由 dataset.designer.vb 文件生成的。

我知道你要说什么。“FNN_BRAND 为空!!!” 这是真的。但是...按照堆栈跟踪,我的代码中产生此错误的行是这样的:

指导将不胜感激!我的直觉告诉我这不是严格意义上的 MVC 问题,但也许我对数据集不了解。

这是 reference.vb 文件中引发异常的代码:

我尝试过的事情:

  • 注释掉异常将使其返回 null 这是我想要的,但是当表更改或生成表结果的存储过程发生更改时,将重建数据集。
  • 更改了数据表上列的规则。实际上没有产生任何结果,并且也将在表重新生成时被覆盖。
  • IsNothing(column) 或 isDBnull(column) 实际上会导致错误,因为正在检索和转换列。

我需要知道解决这个问题的最佳方法,希望与 MVC 架构保持一致。

帮助我的书呆子们......你是我唯一的希望!

0 投票
6 回答
7623 浏览

asp.net - 如何将 DBNULL 转换为双精度值?

我从数据库中获取一个值。它出现了一个错误,说“从 DBNULL 到 Double 的转换无效。” 任何人,请帮助我?

公共函数 Total() As Double Dim Total As Double

0 投票
3 回答
4396 浏览

vb.net - 使用 Null 值更新列

我在表中有一个日期字段(smalldatetime),在特定情况下,我需要将日期字段设置为空。目前,将 sqlparameter.value 属性设置为日期时

endDateParam.Value = "5/15/2011"

该字段已更新为正确的日期。但是,将其设置为

endDateParam.Value = System.DbNull.Value

不更新字段。

后面的代码:

更新

endDateParam.Value = System.Data.SqlTypes.SqlDateTime.Null

似乎仍然没有更新该字段。不返回任何错误。

0 投票
3 回答
5482 浏览

c# - 在插入时从 SQL Server 获取 SCOPE_IDENTITY

我想为时已晚,我太累了,看不到自己做错了什么。这是我正在尝试的:

存储过程:

我得到 DBNull 作为 spParams[0].Value。我已经尝试在我的存储过程中将@IMAGE_ID 的值设置为一个常量,但它没有改变任何东西,所以问题不在于我的存储过程(这就是我的想法)。

当我从 sql management studio 执行该过程时,我看到 insert_id 返回..