文章教程

9.3SqlCommand对象

8/31/2020 9:19:23 PM 人评论 次浏览

9.3 SqlCommand对象

SqlCommand对象表示执行操作数据库的命令,这个命令可以是SQL语句,也可以是存储过程。通过SqlCommand对象执行的操作类型有多个,如查询单条或多条数据、添加数据、删除数据、修改数据以及存储过程等。

9.3.1 创建SqlCommand对象

SqlConnection对象提供CreateCommand()方法,通过该方法可以创建并返回一个SqlCommand对象。代码如下。

    SqlCommand command = conn.CreateCommand();

除了调用上述方法外,还可以直接通过new创建SqlCommand对象。实例化SqlCommand对象时,有以下4种构造函数。

    SqlCommand command = new SqlCommand();
    SqlCommand command = new SqlCommand(string cmdText);
    SqlCommand command = new SqlCommand(string cmdText, SqlConnection conn);
    SqlCommand command = new SqlCommand(string cmdText, SqlConnection conn, SqlTransaction trans);

其中,cmdText表示执行添加、查询、删除和搜索的SQL语句或者存储过程;conn表示SqlConnection的实例对象;trans表示SqlTransaction的实例对象。

【范例4】

首先创建SqlConnection对象的实例,接着创建SqlCommand对象,在创建时传入两个参数,第一个参数表示执行的SQL语句,第二个参数表示SqlConnection对象。代码如下。

    string connectionString = "Data Source=SJB; Initial Catalog=master; User ID=sa; Pwd = 123456";
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    SqlCommand command = new SqlCommand("SELECT * FROM spt_monitor; ", conn);

9.3.2 SqlCommand对象的属性

创建SqlCommand对象之后,可以调用该对象的属性进行设置,常用的属性及其说明如表9-5所示。

表9-5 SqlCommand对象的常用属性

在表9-5中,CommandType属性的值是System.Data.CommandType枚举值之一,取值说明如下。

(1)Text:SQL文本命令。

(2)TableDirect:表的名称。

(3)StoredProcedure:存储过程的名称。

【范例5】

创建SqlCommand对象的实例,然后设置该对象的Connection、CommandText和CommandType等属性。代码如下。

    SqlCommand command = new SqlCommand();
    command.Connection = conn;
    command.CommandText = "SELECT * FROM spt_monitor; ";
    command.CommandType = System.Data.CommandType.Text;

9.3.3 SqlCommand对象的方法

SqlCommand对象还提供了一系列的方法,通过这些方法可以完成对数据库的添加、删除、修改以及查询操作。如表9-6所示列出了SqlCommand对象的常用方法,并对这些方法进行说明。

表9-6 SqlCommand对象的常用方法

【范例6】

ExecuteScalar()方法执行查询,并返回查询所返回的结果集中第一行的第一列。如果有多行多列,则忽略其他列或行。简单来说,ExecuteScalar()方法返回第一行第一列的结果。下面通过该方法查询master数据库中spt_monitor表中的总记录,然后将结果输出。代码如下。

    string connectionString = "Data Source=SJB; Initial Catalog=master; User ID=sa; Pwd = 123456";
    SqlConnection conn = new SqlConnection(connectionString);
                                                    //创建SqlConnection对象
    conn.Open();                                    //打开数据库连接
    SqlCommand command = conn.CreateCommand();      //创建SqlCommand对象
    command.CommandText = "SELECT COUNT(*) FROM spt_monitor; ";
    command.CommandType = System.Data.CommandType.Text;
    int total = Convert.ToInt32(command.ExecuteScalar());
    Response.Write("spt_monitor表中的总记录:" + total);
    conn.Close();                                       //关闭数据库连接

在使用SqlCommand对象操作数据库表之前,必须确保已经成功连接数据库,使用SqlCommand对象的一般步骤如下。

(1)创建数据库连接对象。

(2)创建SqlCommand的实例对象。

(3)执行SQL语句或者存储过程。

(4)关闭数据库连接。

教程类别