【问题标题】:How to get number of rows updated by a query in .net如何获取.net中的查询更新的行数
【发布时间】:2017-10-30 12:07:50
【问题描述】:

在我的数据库中,我有一个触发器,它在表 tblA 中的一行更新时插入更改日志条目。

现在,在我的代码中,我必须通过一个普通的 Sql 查询来更新它,比如

int count = DBContext.ExecuteStoreCommand("<sql query to update records>");

此计数变量包含由于查询而受影响的行数(更新的行数 + 插入的行数)。

所以我的问题是,我如何才能只获得更新的行数?

目前我正在使用实体框架 4。我已经通过连接或断开模型寻找解决方案,但无法帮助自己。

【问题讨论】:

  • 重复问题,发现:stackoverflow
  • @FooBar 两者都不同,因为这个问题是要更新行数而不是受影响的行数。

标签: asp.net .net sql-server ado.net entity-framework-4


【解决方案1】:

int count = DBContext.ExecuteStoreCommand("");

我认为您可以将其更改为返回 Select 结果集

然后这样做,

<sql query to update> 
Select @@RowCount rowcountAffected

或者 假设你的更新是

update table1 set col1='foo' where id=2
select count(*) rowcountAffected from table1 where id=2

返回受影响行的最有效方法是

i) 假设您只更新(之后不刷新任何记录)

Put Set Nocount ON
Declare @Output parameter inside proc

【讨论】:

  • 此查询提供了正确的结果。谢谢大佬!
  • 只是想知道这是获得它的唯一方法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 2016-02-29
  • 2020-03-17
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多