mysql语句问题,executeScalar()返回的是什么东西?说是object但是数据表里面

mysql语句问题,executeScalar()返回的是什么东西?说是object但是数据表里面,第1张

mysql语句问题,executeScalar()返回的是什么东西?说是object但是数据表里面

它是DBNull.Value,代表数据库中的NULL,但不是C#中的null

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()方法。

另外一个帖子我已经回复

1 首先楼主的代码非常混乱,建议你使用存储过程来做,否则一个函数包含这么多次数据查询效率不太高

2 楼主的ado。net常规用法似乎楼主不了解,除了sqladapter的fill方法不需要显式打开数据库连接,其他的executenonquery/scalar等必须显式打开连接

3 通常用法为

using(sqlconnection=new sqlconnection)

{

try

{}

catch

{}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6130144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存