Command对象概述
Command对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改操作的SQL语句。Command对象主要有以下几种方式。
SqlCommand:用于向SQL Server数据库发送SQL语句,位于System.Data.SqlClient命名空间。
OleDbCommand:用于向使用OLEDB公开的数据库发送SQL语句,位于System.Data.OleDb命名空间。例如,Access数据库和MySQL数据库都是OLEDB公开的数据库。
OdbcCommand:用于向ODBC公开的数据库发送SQL语句,位于System.Data.Odbc命名空间。有些数据库没有提供相应的连接程序,则可以配置好ODBC连接后,使用OdbcCommand。
OracleCommand:用于向Oracle数据库发送SQL语句,位于System.Data.OracleClient命名空间。
设置数据源类型
Command对象有3个重要的属性,分别是Connection属性、CommandText属性和CommandType属性。Connection属性用于设置SqlCommand使用的SqlConnection。CommandText属性用于设置要对数据源执行的SQL语句或存储过程。CommandType属性用于设置指定CommandText的类型。CommandType属性的值是CommandType枚举值,CommandType枚举有3个枚举成员,分别介绍如下。
StoredProcedure:存储过程的名称。
TableDirect:表的名称。
Text:SQL文本命令。
执行SQL语句
Command对象需要取得将要执行的SQL语句,通过调用该类提供的多种方法,向数据库提交SQL语句。
(1)ExecuteNonQuery方法:用来执行非Select命令,通常执行对数据库发生更改的SQL语句。
通常使用它来执行Update、Insert和Delete命令,并返回3个命令所影响的数据行数;另外也可以用来执行一些数据定义命令,比如新建、更新、删除数据库对象(如表、索引等)
该方法返回值意义如下:
对于Update、Insert和Delete语句,返回值为该命令所影响的行数。
对于所有其他类型的语句,返回值为-1。
Command对象通过ExecuteNonQuery方法更新数据库,需要进行的步骤如下:
①创建数据库连接。
②创建Command对象,并指定一个SQL Insert、Update、Delete查询或存储过程。
③把Command对象依附到数据库连接上。
④调用ExecuteNonQuery方法。
⑤关闭连接。
(2)ExecuteReader方法:主要用来读取数据库中的记录。执行Select命令,返回一个DataReader对象,这个DataReader对象是一个只读向前的数据集。
(3)ExecuteScalar方法:用于执行Select查询命令,返回数据中第一行第一列的值,该方法通常用来执行那些用到COUNT或SUM函数的Select命令。