SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢?
使用SQL Server内置的全局变量@@ROWCOUNT即可,@@ROWCOUNT可以返回在当前数据库连接(SqlConnection)中,执行的上一条SQL语句影响了多少行数据,使用示例如下所示:
INSERT INTO [dbo].[Person]([PersonCode],[Name],[Age],[City]) VALUES (N'P8000',N'Herry',50,N'Beijing') ,(N'P8001',N'Dan',50,N'Beijing') ,(N'P8002',N'Zen',52,N'Beijing') ,(N'P8003',N'Tim',52,N'Beijing') ,(N'P8004',N'Jhon',52,N'Beijing') SELECT @@ROWCOUNT--返回5 UPDATE [dbo].[Person] SET [PersonCode]=[PersonCode] SELECT @@ROWCOUNT--返回5 UPDATE [dbo].[Person] SET [PersonCode]=[PersonCode] WHERE [PersonCode] IN (N'P8003',N'P8004') SELECT @@ROWCOUNT--返回2 DELETE FROM [dbo].[Person] WHERE [PersonCode] IN (N'P8003',N'P8004',N'P8001') SELECT @@ROWCOUNT--返回3 DELETE FROM [dbo].[Person] WHERE 1<>1 SELECT @@ROWCOUNT--返回0 SELECT * FROM [dbo].[Person] SELECT @@ROWCOUNT--返回2
所以用ADO.NET执行INSERT,UPDATE,DELETE语句后,再使用查询SELECT @@ROWCOUNT查询出影响的行数返回给ADO.NET即可。不过要注意@@ROWCOUNT这个值要在INSERT/UPDATE/DELETE语句后立即获取,否则会被别的语句引响的行数代替,所以每次INSERT/UPDATE/DELETE后可以将它存入变量,等批处理结束后再RETURN
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2016-10-19 如何设置ASP.NET页面的运行超时时间 (转载)
2009-10-19 C#强类型概述(转摘)