问题标签 [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 回答
2881 浏览

sql-server-2008 - 如何确定参数值是否已传递给存储过程

我想创建一个存储过程(在 SQL Server 2008 R2 中),它将根据表的 PK 更新表中的记录。

例如,存储过程将具有四个参数:

如何确定存储过程的调用者是否为一个(或多个)参数传递了 NULL 值,与调用者是否没有为一个(或多个)参数传递任何内容?

C# 调用者示例:

来电者NULL指定@Phone

调用者忽略@Phone参数:

我在这里要完成的是,如果调用者为参数显式指定 NULL 值,那么我将使用NULL值更新记录。但是,如果用户明确忽略传递参数,则UPDATE查询将保留已为特定记录设置的字段/列的值(即查询不会更新该特定列)。

我想我可以指定可以安全假定调用者永远不会使用的默认值 - 像这样:

然后,在存储过程中,我可以检查未定义的值 - 如果参数 vars 仍然设置为NameIsUndefinedEmailIsUndefined和/或PhoneIsUndefined值,那么我可以安全地假设调用者没有为这些参数显式定义值。这是实现我的目标的唯一方法吗?

0 投票
2 回答
2049 浏览

c# - 自动将.Net null 转换为 DBNull.Value?

我编写了一个实用程序来处理向数据参数添加值以进行手动 sql 查询。消费看起来像

或者

应该如何处理 myVariable 的空值?

  1. 所有的价值观都应该被完全信任。责任完全在消费者身上。消费者怎么会知道 null 无论如何都会被处理?
  2. null 永远无法工作,因此它应该抛出 NullArgumentException。为什么还要更进一步?
  3. null 应自动解释为 DBNull.Value,因为它是唯一可行的解​​决方案。这是一个实用程序,对吧?让它可用并干掉一些代码!

可选的附加问题:如果这些论点是由三位政治候选人提出的,他们的政党会是什么?(请说明这些当事人的本国)

0 投票
2 回答
15953 浏览

c# - Linq to DataTable - 无法转换 DBNull

Linq 的新手,如果这是基本的,请道歉。当我枚举结果时,此查询抛出错误 {"Cannot cast DBNull.Value to type 'System.Int64'. Please use a nullable type."}。

ParentID 列确实接受空值 - 我需要单独处理这些吗?

EDIT2:下面的实际解决方案仍然使用Linq。

编辑:我通过废弃 Linq 并仅使用 DataTable.Select 语句解决了这个问题。如果有人对性能差异有意见,我会很感兴趣。

0 投票
2 回答
1957 浏览

asp.net - 在 ASP.NET 中处理 DBNull 和 null

重写这些(错误)行的最佳方法是什么?

布尔?结果 = 博士 [“结果”] == DBNull.Value ?null : Convert.ToInt32(dr["result"]);

...和...

博士[“结果”] = 结果??DBNull.值;

两者都不编译。

我正在使用 MySql 连接器,它不允许我设置,例如,dr["result"] = null;这是我第一次尝试的。

是否有更合适的 .NET 数据类型来表示 MySql 可为空的tinyint(1)

0 投票
3 回答
2069 浏览

exception - 如果值为 dbnull.value,则 vb.net 中的 String.IsNullOrWhiteSpace 抛出错误

String.IsNullOrWhiteSpace(valuefromDB)valuefromDB如果是则抛出错误dbnull.value

那是对的吗??

我以为这个函数也会处理dbnull.value

0 投票
2 回答
10983 浏览

c# - 使用 C# 的 SQLDataReader 值上的 System.IndexOutOfRangeException

我有一个返回三个整数的 SQLDataReader。但是,有时两个整数会返回空值。

为了解决这个问题,我写了以下内容:

不幸的是,我仍然收到错误消息。有什么建议么?

PS我也试过这个没有运气

if (reader["billID"] != null)

0 投票
2 回答
910 浏览

.net - 在 .NET 中处理 DBNull 的最有效方法

可能重复:
处理 DBNull 的最佳方法是什么

.NET 中设置具有 DBNull 值的变量(也就是返回的 SQL 空值)的最有效语法是什么?我记得读过一些被放入 .NET 3.0 的东西。让我们假设我设置的变量具有 DateTime 类型。

常见错误:
从类型“DBNull”到类型“Date”的转换无效。

0 投票
3 回答
38096 浏览

c# - ExecuteScalar 返回 null 或 DBNull(开发或生产服务器)

DataRow我正在尝试向C#中的现有列添加一列。之后,该列将填充我数据库中的单个值。

DataRow dr 已经存在,并且列“COLNAME”也存在。
comTBP 是我的SqlCommand.

如果我的数据库中有一个值并且 ExecuteScalar() 可以获得该值,这一切都可以正常工作。如果我在我的开发服务器(本地)上测试此代码,如果 ExecuteScalar() 返回 null 或 DBNull 并且我的新列的值为 0,它也可以工作。但是如果我将代码部署到生产服务器,就会出现问题。如果我做同样的事情,使用相同的数据库,它会抛出一个异常,并显示它无法将 DBNull 转换为 Int32 的消息。
我的问题是为什么这个错误出现在生产服务器上而不是我的本地开发服务器上?

0 投票
5 回答
1317 浏览

.net - 对空字符串和 DBNull 感到困惑

我正在查看我正在开发的 .net 程序的一些代码。该程序的前任作者在一年前将代码提供给了我。突然,我看到一个我没有接触过的代码抛出的异常:

例外是“无法将 'System.DBNull' 类型的对象转换为 'System.String' 类型。

我认为该字符串是可以为空的数据类型,那么我怎么可能得到这个异常呢?

0 投票
2 回答
890 浏览

sql - 检查 SQL 中的约束 - 指定一个值可以是空值或约束

我正在尝试在 SQLite 中合并一个检查约束,其中要求如下:

  1. 该值可能为空
  2. 如果该值不为空,那么它应该大于 3。

所以,在我的创建表中我写了

为此,它看起来像是创建了表,但它不强制执行大于条件。

我也试过

这甚至不会首先创建表。

有人可以帮助如何执行这两个约束吗?

谢谢