delete语句返回值?delete函数用法
大家好,感谢邀请,今天来为大家分享一下delete语句返回值的问题,以及和delete函数用法的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
ExecuteNonQuery()返回值的几种情况
ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete语句执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1。
(回滚的意思:删除由一个或多个部分完成的事务执行的更新。为在应用程序、数据库或系统错误后还原数据库的完整性,需要使用回滚。回滚泛指程序更新失败,返回上一次正确状态的行为)
对于这种更新操作用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们平时的思维方式有点差距所以应该好好的注意了。
例如对数据库共添加一个数据表的Create操作,当创建数据表成功时返回-1,如果操作失败的话(如数据表已经存在)往往会发生异常,所以执行这种操作时最好用try--catch--语句来容错。
简单意思是用sql语句创建数据库,创建数据表等等一些对数据库结构的操作最好不要用大于0来判断是否操作成功。
扩展资料
c#数据执行方法:
1、使用ExecuteReader()操作数据库,执行查询操作的非常好的方法。
ExecuteReader比DataSet而言,DataReader具有较快的访问能力,并且能够使用较少的服务器资源。DataReader对象提供了游标形式的读取方式,当从结果行中读取了一行,则游标会继续读取到下一行。
通过read方法可以判断数据是否还有下一行,如果存在数据,则继续运行返回true,如果没有数据,则返回false。DataReader可以提高执行效率,基于序号的查询可以使用DataReader。
使用ExecuteReader()操作数据库,通常情况下是使用ExecuteReader()进行数据查询操作,使用ExecuteReader()查询数据能够提升查询效率,而如果需要进行数据库事务处理的话,ExecuteReader()并不是一个理想的选择。
2、使用ExecuteNonQuery(),ExecuteScalar()操作数据库,执行增删改操作的利器
ExecuteNonQuery()通常情况下为数据库事务处理的首选,当需要执行插入,删除,修改等操作时,首选ExecuteNonQuery(),ExecuteNonQuery()执行成功返回的是一受影响的行数,对于"Create Table"和"Drop Table"语句,返回值是0。
而对于其他类型的语句,返回值是-1,ExecuteNonQuery()操作数据时,可以不使用DataSet直接更改数据库中的数据。
ExecuteScalar()方法也可以用来执行SQL语句,但是executescalar()执行SQL语句后返回值与ExecuteNonQuery()并不相同,executescalar()方法的返回值的数据类型是object。
如果执行的SQL语句是查询语句,则返回结果是查询后的第一行第一列,如果执行的SQL语句不是一个查询语句,则会返回一个未实例化的对象,必须通过类型装换来显示。
一般情况下,ExecuteNonQuery()操作后返回的是一个值,而executescalar()操作后则会返回一个对象,executescalar()经常使用当需要返回单一值时的情况。例如当插入一条数据信息时,需要马上知道刚才插入的值,则可以使用executescalar()方法。
mysqli_query()函数的返回值类型是
回答于2020-10-16
本篇文章给大家分享的是有关mysqli_query($conn,$sql)函数的返回值类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
一、mysqli_query($conn,$sql)的返回值类型:
(1)DML:增删改,执行失败返回false,成功返回true
(2)DQL:查,执行失败返回false,成功返回查询结果集对象,可能有0/1/N行数据;
从其中获取一行数据可以使用:
$row=mysqli_fetch_row($result);抓取一个索引数组或null
$row=mysqli_fetch_assoc($result);抓取一个关联数组或null
从其中获取所有记录行可以使用:
$rowList=mysqli_fetch_all($result, MYSQLI_ASSOC);抓取一个二维数组,每一行呈现为一个关联数组
二、SQL语句的分类:
DDL: Data Define Language,数据定义语言——定义列
CREATE/ DROP/ ALTER/ TRUNCATE
DML: Data Manipulate Language,数据操作语言——操作行
INSERT/ DELETE/ UPDATE
DQL: Data Query Language,数据查询语言——不影响数据
SELECT
DCL: Data Control Language,数据控制语言——控制权限
GRANT/ REVOKE
以上就是mysqli_query($conn,$sql)函数的返回值类型,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道
executeUpdate()方法的使用
方法executeUpdate
用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句,例如CREATETABLE和DROPTABLE。INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列。
executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数)。对于CREATETABLE或DROPTABLE等不操作行的语句,executeUpdate的返回值总为零。
使用executeUpdate方法是因为在createTableCoffees中的SQL语句是DDL(数据定义语言)语句。创建表,改变表,删除表都是DDL语句的例子,要用executeUpdate方法来执行。也可以从它的名字里看出,方法executeUpdate也被用于执行更新表SQL语句。
扩展资料:方法execute:
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程或动态执行未知SQL字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。
因为方法execute处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。
例如,假定已知某个过程返回两个结果集,则在使用方法execute执行该过程后,必须调用方法getResultSet获得第一个结果集,然后调用适当的getXXX方法获取其中的值。要获得第二个结果集,需要先调用getMoreResults方法,然后再调用getResultSet方法。
如果已知某个过程返回两个更新计数,则首先调用方法getUpdateCount,然后调用getMoreResults,并再次调用getUpdateCount。
对于不知道返回内容,如果结果是ResultSet对象,则方法execute返回true;如果结果是Javaint,则返回false。
如果返回int,则意味着结果是更新计数或执行的语句是DDL命令。在调用方法execute之后要做的第一件事情是调用getResultSet或getUpdateCount。
调用方法getResultSet可以获得两个或多个ResultSet对象中第一个对象;或调用方法getUpdateCount可以获得两个或多个更新计数中第一个更新计数的内容。
1、getResultSet
返回null意味着不是结果集可以理解为是一个更新计数或没有其它结果
2、getUpdateCount
返回影响的行数-1表示结果是结果集或没有结果
如果已经调用方法getResultSet并处理了它返回的ResultSet对象,则有必要调用方法getMoreResults以确定是否有其它结果集或更新计数。如果getMoreResults返回true,则需要再次调用getResultSet来检索下一个结果集。
如上所述,如果getResultSet返回null,则需要调用getUpdateCount来检查null是表示结果为更新计数还是表示没有其它结果。
当getMoreResults返回false时,它表示该SQL语句返回一个更新计数或没有其它结果。因此需要调用方法getUpdateCount来检查它是哪一种情况。在这种情况下,当下列条件为真时表示没有其它结果:
((stmt.getMoreResults()==false)&&(stmt.getUpdateCount()==-1))。
参考资料:
百度百科——update
百度百科——ShellExecute
delete语句返回值和delete函数用法的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!