【问题标题】:RecordsAffected returns 411 but no actual records returnedRecordsAffected 返回 411 但没有返回实际记录
【发布时间】:2015-10-09 00:14:08
【问题描述】:

我正在使用 asp.net (VB.NET) 使用 Microsoft 应用程序块 (MAB) 填充表以获取数据。当我在 SQL Server 管理中运行存储过程时,它返回一个零记录的记录集。在 MAB 中,记录集返回零记录,但 RecordsAffected 属性返回 411 条记录。

Dim sqlParameters As SqlParameter() = SqlHelperParameterCache.GetSpParameterSet(connectionString, "GetList")
    sqlParameters(0).Value = UID (543435)
    sqlParameters(1).Value = Para1 (1)
    sqlDataReader = SqlHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, "GetList", sqlParameters)

我不打算展示 SQL,没有意义,它返回零记录。 RecordsAffected 返回了 411 条记录,为什么会出现差异?如何让 RecordsAffected 返回零。

【问题讨论】:

  • 你能把 SP 也包括进来吗?
  • 我选择了多条记录,放到一个临时表(411)中,然后过滤临时表返回零记录。

标签: asp.net vb.net


【解决方案1】:

RecordsAffected 的定义不一定是返回的记录数。它可以指更新、删除或插入的记录数。

https://msdn.microsoft.com/en-us/library/ms189837.aspx

在 SSMS 中运行时,它返回零记录。您看到 411 的原因可能是因为更新了 411 记录。您需要返回 SQL 以了解详细信息。另一方面,如果你想得到零,添加

SET NOCOUNT ON

【讨论】:

  • 不想添加“SET NOCOUNT NO”,因为我想要阅读器中返回的记录数。如果读取器中返回 0 条记录,则为零,如果 10 条记录则返回 10。
  • 不...如果您的表有 5 条记录,并且您从您的表中选择 *。你会返回 5 条记录 .. 这是 5 条记录,无论是否开启或关闭
  • 但是 SQLDataReader 属性 RecordsAffected 没有返回 5,它返回了错误的数字。
  • 您的存储过程是否仅限于一个语句? IE。 .从 yourTable 中选择前 5 个
  • 再次,我认为我们需要查看存储过程以确定发生了什么。我知道您认为这无关紧要,但我们没有足够的信息来提供答案。
猜你喜欢
  • 2012-04-07
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 2016-01-05
  • 2019-05-26
  • 1970-01-01
相关资源
最近更新 更多