You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中如何通过ConnectionObject.Execute()获取受影响记录数

原因说明

ADODB.Connection的Execute()方法不会自动向外抛出操作影响的记录行数,需要显式传入变量接收方法的输出参数才能拿到对应数值。

修复方案
  • 声明Long类型变量,作为Execute()方法的第二个参数传入,语句执行完成后该变量会被自动赋值为本次操作影响的记录总数。
  • 执行增删改这类不需要返回结果集的操作时,建议传入adExecuteNoRecords常量,跳过Recordset对象生成逻辑,减少不必要的性能开销。
修正后可直接运行的代码
Dim db As ADODB.Connection
Dim affectedRows As Long
Dim deleteExams As String
' 若工程未提前引用Microsoft ActiveX Data Objects库,直接定义常量即可
Const adExecuteNoRecords As Long = 128

Set db = OpenDatabase(ConnectionString)
deleteExams = "delete from [Table2] where [PlanDate] < '" & sDate & "'"
' 传入行数接收变量与执行选项
db.Execute deleteExams, affectedRows, adExecuteNoRecords

' 此时affectedRows就是删除操作影响的实际行数,可直接用于业务判断、日志打印
MsgBox "操作完成,共删除符合条件的记录" & affectedRows & "条"

db.Close()
Set db = Nothing

注意:直接拼接SQL字符串存在SQL注入隐患,若sDate格式与数据库存储的日期格式不匹配也可能触发语句执行错误,正式环境建议改用ADODB.Command对象通过参数化方式传值执行操作。

内容的提问来源于stack exchange,提问作者Karthik Karnam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:21:23