C# 执行 SQL 语句(完)
Command 对象需要取得将要执行的 SQL 语句,通过调用该类提供的多种方法,向数据库提交 SQL语句。下面详细介绍 SqlCommand 对象中的几种执行 SQL 语句的方法。01 ...
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
更多推荐
所有评论(0)