问题标签 [executescalar]

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 回答
2519 浏览

c# - ExecuteScalar 在调用返回 1 的存储过程时抛出 NullReferenceException

在发布这个问题之前我做了一些研究,我知道当没有返回数据时,ExecuteScalar 会抛出 System.NullReferenceException。这就是为什么我将我的存储过程修改为“返回 1”,这样就可以保证返回值。但是,我仍然收到 NULL 引用异常。

所以我尝试使用 SqlCommand 来查询一个有数据的表:

当我运行执行标量时,我能够获取一个值,因此我知道我有权查询数据库。我怀疑这是我错过的一些特定的存储过程权限设置?

我非常感谢任何评论/建议,因为我已经坚持了一天。:(

我的代码如下所示:

谢谢!

0 投票
1 回答
549 浏览

executescalar - 使用 ExecuteScalar() 会导致使用“默认”CommandBehaviour 调用 ExecuteReader()?

堆栈跟踪显示 ExecuteReader 是 ExecuteScalar 的底层方法。在挖掘相关的命令行为时,我发现下面的帖子 - 说明命令行为.default 由读者使用。

ExecuteScalar() 比 ExecuteReader() 有什么优势吗?

我知道始终可以使用 datareader.close()、datareader.dispose() 来关闭和显式处理连接——提供,使用 ExecuteReader(commandbehaviour.Closeconnection)。另一方面,ExecuteReader(CommandBehaviour.Default) 保持底层连接打开,即使数据读取器对象已关闭和/或处置。所以我的问题是,如果 executescalar 使用默认行为,我如何确保在检索到标量值后关闭底层连接?

0 投票
2 回答
106 浏览

c# - 在 ExecuteScalar 中使用两个查询时一个查询失败的可能性

我编写了一个查询,它是一个复合查询,例如一个更新查询和一个插入查询。我正在使用 ExecuteScalar。是否有可能一个查询失败而另一个查询成功。如果其中一个查询错误,则将是全部失败或部分失败。

有人可以帮忙吗:)

0 投票
4 回答
5222 浏览

vb.net - SqlCommand.ExecuteScalar - 指定一个特定的数据项

我有一个存储过程,它返回 10 列数据。使用cmd.ExecuteScalar()从第一条记录返回第一列的值。

如何通过指定别名/数据项名称来更改它以便可以返回不同的列?

我希望能够做类似的事情:

0 投票
1 回答
653 浏览

vb.net - vb.net - 对象引用未设置为对象实例

尝试在我的 sql 语句中使用参数时出现此错误,但不使用时它工作正常。我的代码如下:

当我评论时txtUserType.Text = i.ToString,它工作正常。任何想法?

0 投票
4 回答
4287 浏览

c# - ExecuteScalar 返回 0 执行存储过程

我正在重构一个 C# 程序,该程序调用一个以以下结尾的存储过程:

C# 代码如下所示:

使用上面的代码,Result正确填充了
存储过程返回的值。

用更简单的代码重构代码ExecuteScalar

Result值奇怪地设置为 0,而预期结果应该是大于零的整数值。

你知道这种奇怪行为的原因是什么吗?

笔记:

存储过程有几个 if 块,在特定检查的情况下返回低于零的结果值;这些情况由 ExecuteScalar() 正确处理。

当存储过程正确完成其工作、提交各种更新的事务并Result在最后返回值时,就会出现问题。

0 投票
5 回答
18146 浏览

c# - 如何创建数组 DbParameter[]

手册说 ExecuteScalar 方法应该像这样使用:

但是如何创建该参数数组?我需要提供我的存储过程 2 参数。

0 投票
3 回答
38096 浏览

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

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

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

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

0 投票
2 回答
357 浏览

c# - ExecuteScalar 编译错误

我在ExecuteScalar(). 它说我必须声明标量变量@PicID。我怎么能声明一个标量变量?还是我做错了整个功能?

0 投票
2 回答
513 浏览

c# - 执行标量查询代码问题

我试图在下面的这个查询中返回成员 ID。如果我像查询一样运行查询,我会得到 20,但是当我执行代码时它返回零。我在这里做错了什么?