在 asp.net 中获取事务中的有效行

Posted

技术标签:

【中文标题】在 asp.net 中获取事务中的有效行【英文标题】:Get effected rows in transaction in asp.net 【发布时间】:2016-05-03 10:05:00 【问题描述】:

我在 .net 代码中使用 SQL 事务。 我需要在交易后生效的行。 我有以下代码

Dim result2 As Integer = New SqlCommand(sql.ToString(), connection, transaction).ExecuteNonQuery()

transaction.Commit()

但是即使行受到影响,result2 变量也总是返回零。

谁能给我解决办法?

【问题讨论】:

什么是 sql.ToString() 值? 显示你的sql语句 我错过了在 Exit Sub 之前关闭连接 If result2 = 0 Then show error pop up connection.Close() Exit Sub ,这里我错过了关闭连接。 【参考方案1】:

您正在使用ExecuteNonQuery(),它仅在我们的查询不会返回任何值时使用。所以它总是给你0。你需要使用ExecuteScalar()并创建一个存储过程,你可以在其中返回没有受影响的行。

【讨论】:

ExecuteNonQuery() 将返回受影响的行。

以上是关于在 asp.net 中获取事务中的有效行的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 ASP.NET gridview 中一行中的按钮来获取行数据

ASP.NET 和 SQL Server 2008 中的错误“用户 'NT AUTHORITY\IUSR' 登录失败”

ASP.NET_基础

ASP.NET Core与ASP.NET区别

在 ASP.NET Core 应用程序中使用多个 HttpClient 对象

.NET Core(或 ASP.NET 5)中是不是有 MEF 的替代品