SqlCommand 类中常用的构造方法如下表所示。
构造方法 |
说明 |
SqlCommand() |
无参构造方法 |
SqlCommand(string commandText,SqlConnection conn) |
带参的构造方法,第1个参数是要执行的SQL语句,第2个参数是数据库的连接对象 |
对数据库中对象的操作不仅包括对数据表的操作,还包括对数据库、视图、存储过程等数据库对象的操作。
属性或方法 |
说明 |
CommandText |
属性,Command兑现之前要执行的SQL语句 |
Connection |
属性,获取或设置数据库的连接对象 |
CommandType |
属性,获取或设置命令类型 |
Parameters |
属性,设置Command对象中SQL语句的参数 |
ExecuteReader() |
方法,获取执行查询语句的结果 |
ExecuteScalar() |
方法,返回查询结果中第1行第一列的值 |
ExecuteNonQuery() |
方法,执行对数据表的增加、删除、修改操作 |
使用 Command 类操作数据库
Command 类中提供了 3 种命令类型,分别是 Text、TableDirect 以及 StoredProcedure,默认情况下是Text。
所谓 Text 类型是指使用 SQL 语句的形式,包括增加、删除、修改以及查询的SQL语句。
StoredProcedure 用于执行存储过程;TableDirect 仅在 OLE DB 驱动程序中有效。
在使用 Command 类操作数据库时需要通过以下步骤完成。
(1) 创建 SqlCommand 类的实例
创建 SqlCommand 类的实例分两种情况,一种是命令类型为 Text 的,一种是命令类型为StoredProcedure的。
需要注意的是,存储过程必须是当前数据库实例中的存储过程,并且在调用带参数的存储过程时,还需要在 SqlCommand 类的实例中添加对应的存储过程参数。
为存储过程添加参数,需要使用 SqlCommand 类实例的 Parameters 属性来设置,具体的代码如下。
在这里,参数名与存储过程中定义的参数名要一致。
(2) 执行对数据表的操作
在执行对数据表的操作时通常分为两种情况,一种是执行非查询 SQL 语句的操作,即增加、修改、删除的操作,一种是执行查询 SQL 语句的操作。
执行非查询 SQL 语句的操作
在执行非查询 SQL 语句时并不需要返回表中的数据,直接使用 SqlCommand 类的
ExecuteNonQuery 方法即可,该方法的返回值是一个整数,用于返回 SqlCommand 类在执行 SQL语句后,对表中数据影响的行数。
当该方法的返回值为 -1 时,代表 SQL 语句执行失败,当该方法的返回值为 0 时,代表 SQL 语句对当前数据表中的数据没有影响。
例如 要删除学号为 1100 的学生的信息,而表中不存在该学号的学生的信息,SQL语句可以正常执行,但对表中的影响行数是 0。
具体的代码如下。
需要注意的是,如果执行的 SQL 语句在数据库中执行错误,则会产生异常,因此该部分需要进行异
常处理。
执行查询语句的操作
在执行查询语句时通常需要返回查询结果,SqlCommand 类中提供的 ExecuteReader 方法在执行查询 SQL 语句后,会返回一个 SqlDataReader 类型的值,通过遍历 SqlDataReader 类中的结果即可得到返回值。
具体的代码如下。
此外,如果在执行查询语句后并不需要返回所有的查询结果,而仅需要返回一个值,例如查询表中的记录行数,这时可以使用 ExecuteScalar 方法。具体的代码如下。