Command 对象需要取得将要执行的 SQL 语句,通过调用该类提供的多种方法,向数据库提交 SQL语句。下面详细介绍 SqlCommand 对象中的几种执行 SQL 语句的方法。
01 ExecuteNonQuery 方法
执行 SQL 语句,并返回受影响的行数,在使用 SqlCommand 向数据库发送增、删、改命令时,通常使用 ExecuteNonQuery 方法执行发送的 SQL 语句。
语法如下:
public override int ExecuteNonQuery()
返回值:受影响的行数。
例2
创建一个 Windows 应用程序,在三八妇女节那天,公司决定为每位女员工颁发奖金50元。这样,就需要向数据发送更新命令,将数据库中所有女员工的奖金数额加上 50,所以要使用 ExecuteNonQuery 方法执行发送的 SQL 语句,并获取受影响的行数。
“
代码如下:
”
SqlConnection conn; //声明一个 SqlConnection 变量
private void button1_Click(object sender, EventArgs e)
{
//实例化 SqlConnection 变量 conn
conn=new SqlConnection("server=.;database=db_15;uid=sa;pwd=");
conn.Open(); //打开连接
SqlCommand cmd = new SqlCommand(); //创建一个 SqlCommand 对象
//设置 Connection 属性,指定其使用 conn 连接数据库
cmd.Connection= conn;
//设置 CommandText 属性,以及其执行的 SQL 语句
cmd.CommandText="update tb_command set 奖金=50 where 性别='女'";
//设置 CommandType 属性为 Text,使其只执行 SQL 语句文本形式
cmd.CommandType = CommandType.Text;
//使用 ExecuteNonQuery 方法执行 SQL 语句
int i = Convert.Tolnt32(cmd.ExecuteNonQuery());
label2.Text="共有”+i.ToString()+"名女员工获得奖金";
}
“
程序的运行结果如图2 所示。
图2 对数据表执行更新操作
说明
如果想要执行存储过程,应将 CommandType 属性设置为 StoredProcedure,将CommandText 属性设置为存储过程的名称。
02 ExecuteReader 方法
执行 SQL 语句,并生成一个包含数据的 SqlDataReader 对象的实例。
语法如下:
public SqlDataReader ExecuteReader()
返回值:一个 SqlDataReader 对象。
例3
创建一个 Windows 应用程序,根据 select * from tb_command 语句进行查询,调用 ExecuteReader 方法返回一个包含 tb_command 表中所有数据的 SqlDataReader 对象。
“
代码如下:
SqlConnection conn; //声明一个 SqlConnection 对象
private void button1_Click(object sender, EventArgs e)
{
//实例化 SqlConnection 变量 conn
conn=new SqlConnection("server=.;database=db_15;uid=sa;pwd=");
conn.Open(); //打开连接
SqlCommand cmd = new SqlCommand(); //创建一个 SqlCommand 对象
//设置 Connection 属性,指定其使用 conn 连接数据库
cmd.Connecton = conn;
//设置 CommandText 属性,以及其执行的 SQL 语句
cmd.CommandText ="select* from tb_command";
//设置 CommandType 属性为 Text,使其只执行 SQL 语句文本形式
cmd.CommandType = CommandType.Text;
//使用ExecuteReader 方法实例化一个 SqlDataReader 对象
SqlDataReader sdr = cmd.ExecuteReader();
while(sdr.Read()) //调用 while 语句,读取 SqIDataReader
{
listView1.Items.Add(sdr[1].ToString()); //将内容添加到 listView1 控件中
}
conn.Dispose(); //释放连接
button1.Enabled = false; //禁用按钮
}
“
程序的运行结果如图3 所示。
图3 获取员工姓名
03 ExecuteScalar 方法
执行 SQL 语句,返回结果集中的第一行的第一列。
语法如下:
public override Object ExecuteScalar()
返回值:结果集中第一行的第一列或空引用(如果结果集为空)。
在例1 中,已经使用 ExecuteScalar 方法获取指定数据表中的数据数量,此处不再赘述。大家可参见例1 中的代码,理解 ExecuteScalar 方法的使用。ExecuteScalar 方法通常与聚合函数一起使用, 常见的聚合函数如表1 所示。
表1 常见的聚合函数及说明
往期推荐
Love life,love yourself
关注小编不迷路呦~
-----------------------------------
需要进技术群交流的,请添加小编mm1552923