C# 对数据库操作的函数总结

SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。可以写也可以读。
1.可以使用ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),
2.对于Update、Insert 和 Delete 语句,返回值为该命令所影响的行数。
3.对于所有其他类型的语句,返回值为-1。如果发生回滚,返回值也为 -1.
4.执行Select子句,数据库并无变化,自然返回-1。同样适合ODBC、OLEDB等数据源,因为都实现IDbCommand.ExecuteNonQuery方法。
ExecuteScalar():执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。仅可以读。
语法: public abstract Object ExecuteScalar() 返回值: 类型: System.Object,结果集中第一行的第一列。
备注: 使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。如果找不到结果集中第一行的第一列;则返回 null 引用(在 Visual Basic 中为 Nothing)。 如果数据库中的该值为 null,此查询将返回 DBNull.Value。
 
 
  • 对于查询单个字段,不包括函数的 select 语句,例如 select a字段 from 表A ,如果不存在值,DbCommand.ExecuteScalar 方法的返回值是 null,调用者需要使用 result == null 来判断。
  • 对于使用函数的select 语句,例如select sum(a字段) from 表A,如果不存在值,DbCommand.ExceuteScalar 方法的返回值是 DBNull.Value,调用者需要用 result is DBNull 或者 result == DBNull.Value 来判断。
对 ADO.NET 的 DbCommand.ExecuteScalar 方法的调用者来说,要注意根据所使用的 SQL 语句来选择使用 result == null 还是使用 result is DBNull 来判断查询结果是否为空。如果使用 result == null || result is DBNull 来判断查询结果是否为空就更保险了,能够适应这两种 SQL 语句的写法,但是运行效率会有所降低。

ExecuteReader 返回一个 SqlDataReader 对象。

SqlDataAdapter 获取一个DateSet对象。

Command 对象公开了几个可用于执行所需操作的 Execute 方法。当以数据流的形式返回结果时,使用 ExecuteReader 可返回 DataReader 对象。使用 ExecuteScalar 可返回单个值。使用 ExecuteNonQuery 可执行不返回行的命令。

当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数。






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值