问题标签 [dbcommand]

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

c# - DbCommand.ExecuteNonQuery 错误处理

当我在 .net 中使用 DbCommand.ExecuteNonQuery() 时,它将返回一个标量。这是我将从该命令中获得的唯一信息吗?或者是否还有异常,例如命令错误、超时或其他原因?

0 投票
2 回答
511 浏览

c# - 为什么通过 DbCommand(Parameterized) 的 SQL Server SHOWPLAN_XML 不返回结果?

我希望通过 C# 收集查询计划以改进开发。

我的方法是使用DbCommandSET SHOWPLAN_XML ON

但...

  • Non-parameterized query将集中返回查询计划。
  • Parameterized query不会返回任何东西!

SQL Server 2008 R2 和 LocalDB(2012) 都有同样的问题。

如何获得参数化查询的计划?

你知道为什么我的参数化查询是不可计划的吗?


[示例:重现步骤]</h1>

1. 创建表。

2. 执行查询

  • 非参数化查询

    这将是退货计划:

    /li>
  • 参数化查询

    这不是响应计划:

    /li>
0 投票
2 回答
1595 浏览

c# - 捕获唯一密钥冲突的通用方法

我使用 System.Data.Common.DbCommand 将新行插入数据库。关键是,这一行已经存在。

如果我要明确捕获 System.Data.SqlClient.SqlException 我可以评估 ErrorNumber 如下所示。

SqlException 上下文中的 ErrorNumber 2627 表示违反唯一键。请参阅https://msdn.microsoft.com/en-us/library/ms151757%28v=sql.110%29.aspx

到目前为止,一切都很好。因为我正在使用 DbCommand 并因此使用不同类型的关系数据库管理系统,所以我正在寻找一种更通用的方式来捕获这种违反唯一键约束的行为。

感谢帮助。

0 投票
1 回答
309 浏览

c# - ExecuteReader:连接错误消息

我想在我的文本框中显示数据,但我在 DAL 中遇到了一个错误。我有一个存储过程,但我无法让我的数据以返回值返回。我想用 myBLL返回一个 DataTable。请问你能帮忙吗?

达尔

我收到以下错误:

我正在使用一个如下所示的连接类:

0 投票
1 回答
180 浏览

using - 使用块的 DBCommand

我有以下代码:

通过阅读该站点上的几篇文章,建议DbCommand应该在 using 块中,但是,我不明白为什么需要这样做。Connection 已关闭,那么 DbCommand 需要使用 using 块吗?如果一个类从 IDisposable 继承,是否必须使用 using 块或手动调用 Dispose?

我在上面的代码上运行了一个有 100 个线程的模拟器,并且在上面的代码上运行了一个带有 using 块的代码,DbCommand我看不到内存使用情况的真正差异。

0 投票
1 回答
762 浏览

sql - .NET ORA-01858:在需要数字的地方发现了一个非数字字符

我正在尝试构造命名参数但收到错误。

无法从数据库 Oracle.DataAccess.Client.OracleException ORA-01858 中获取数据:在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper 中预期为数字的地方发现了一个非数字字符...

构造以下查询:

虽然参数是

0 投票
2 回答
360 浏览

sql-server - 实体框架 6 的拦截无法按预期工作

我正在尝试按照此处显示的拦截示例使其与 EF 6 一起使用,但遇到了RewriteFullTextQuery如图 1 所示的函数问题。拦截似乎有效,但实际上并未执行for循环中的逻辑RewriteFullTextQuery方法,因为cmd.Parameters.Count总是为零。此外,该cmd.CommandText属性似乎正在显示正确的 SQL 查询,我将其作为拦截工作正常的另一证据。

图 1:RewriteFullTextQuery 代码摘录

RewriteFullTextQuery 函数被ReaderExecuting图 2 中所示的函数调用,该函数为其提供了导致所有问题的命令参数。

图 2:ReaderExecuting 函数

尽管我的代码与示例不完全相同,但拦截似乎正在工作,所以这让我想知道是什么条件将填充命令的 aParameters.Count大于零?

0 投票
2 回答
912 浏览

c# - dbCommand 和存储过程参数名称不同,但传递的是值。为什么?

我使用 C# 并实例化 aDbCommand以执行 Oracle 存储过程。

我的问题是:为什么该过程通过与 db 中的 on 不同的命名参数接收值?

当我将参数添加到dbCommand

我执行:

它将dbCommand参数正确地传递给存储过程参数。

  • 这是为什么?

  • 它将值设置为没有值的第一个参数还是基于位置?

  • 如果它基于位置,为什么我们需要名称?

  • 名称只是为了帮助开发人员理解代码吗?

0 投票
0 回答
686 浏览

vb.net - DbCommand.ExecuteNonQuery 无限期挂起

我试图在我的 Oracle 数据库中的表上运行插入查询。下面是我正在做的测试。

  1. 首先锁定我想从 SQL Developer 会话中插入的表

    /li>
  2. 尝试使用 DbCommand.ExecuteNonQuery 运行插入
  3. 我已将 CommandTimeout 属性设置为 60 秒

即使在完成 60 秒后,控件也没有返回,但是当我解锁表时,它正在执行插入并且还抛出异常。

我认为,当命令超时到期但控制没有从本机代码返回时,.NET 正确地抛出异常,直到表被解锁。在这种情况下如何避免无限期等待?

0 投票
1 回答
1776 浏览

c# - SqlParameter DbType.Date -> SqlDbType.DateTime 转换

我正在使用通用 IDbCommand 函数(在非 SqlCommand 辅助方法中)将 SqlCommand.DbType 设置为 DbType.Date,类似于:

并且生成的 param.DbType 被覆盖为 DbType.DateTime。(我故意想要SqlDbType.Date,因为列/索引是Sql Server 类型的Date,而不是DateTime。)果然,当我反编译时,我看到SqlParameter.DbType 集合调用MetaType.GetMetaTypeFromDbType,它有这个:

所以强制转换是故意的,相反我必须做一些hacky,比如:

我的问题是为什么要强制转换?这是从早期版本的 Sql Server/框架中继承下来的,可能 Date 不存在并且假设人们不知道 DbType.Date 和 DbType.DateTime 之间的区别是合理的?还是有更根本的事情发生?

是否有没有特殊外壳 SqlParameter 的实际解决方法?

(今天早上我发现这个搜索的参考资料出人意料地少,所以也许在另一轮咖啡因之前我错过了一些更明显的东西?总是很感激!)