博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于C#操作数据库ExecuteNonQuery()的返回值问题
阅读量:5078 次
发布时间:2019-06-12

本文共 1392 字,大约阅读时间需要 4 分钟。

1 if (AccessCon.ExecuteSql(sql = "select * from salesData where index ='" + man.Index + "'") > 0) 2             { 3                 retValue = AccessCon.ExecuteSql(sql = "update salesData set sellingPrize='" + man.SellingPrize + "' where index='" + man.Index + "'"); 4                 Console.WriteLine(sql); 5             } 6             else 7             { 8                 retValue = AccessCon.ExecuteSql(sql = "insert into salesData values ('" + man.Index + "','" + man.SellingPrize + "')"); 9                 Console.WriteLine(sql);10             }11 12             return retValue;

  本来想通过select * from salesData where index =' man.Index '执行后的返回值是否大于0判断表中是否已有数据

因为msdn中说返回受影响的行数:

Executes a Transact-SQL statement against the connection and returns the number of rows affected.

但是却没看到备注里说

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.

对于UPDATE, INSERT,和 DELETE返回受影响的函数,但是对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。这样对于search语句来说就不适合ExecuteNonQuery()方法了。

转载于:https://www.cnblogs.com/20zhiyuxue/p/5880682.html

你可能感兴趣的文章
VIM工具
查看>>
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>
url查询参数解析
查看>>
http://coolshell.cn/articles/10910.html
查看>>
[转]jsbsim基础概念
查看>>
JSP作业3-金字塔
查看>>
Generate BKS File( Bouncy Castle KeyStore)
查看>>
obdg反汇编破解crackme
查看>>
Python作业1 登录程序
查看>>
js弹出模态与非模态页面
查看>>
第四讲 深入介绍信号与槽
查看>>
MARS安卓笔记
查看>>
centos安装——usb安装技术问题整理
查看>>
C#二维码与条形码的生成
查看>>
【leetcode】Container With Most Water
查看>>
如何熟悉一个项目?
查看>>