mysql c# 执行多条sql语句_C#:执行SQL语句Command

本文详细介绍了C#中SqlCommand对象的使用,包括向SQL Server、MySQL等数据库发送SQL语句的功能。重点讲解了ExecuteNonQuery、ExecuteReader和ExecuteScalar等执行SQL的方法,以及Command对象的重要属性,如CommandText、CommandType和Connection。
摘要由CSDN通过智能技术生成

Command对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改操作的SQL语句。Command对象主要有以下几种方式:

►SqlCommand:用于向SQL Server数据库发送SQL语句,位于System.Data.SqlClient命名空间。

►OleDbCommand:用于向使用OLE DB公开的数据库发送SQL语句,位于System.Data.OleDb命名空间。例如,Access数据库和MySQL数据库都是OLE DB公开的数据库。

►OdbcCommand:用于向使用ODBC公开的数据库发送SQL语句,位于System.Data.Odbc命名空间。有些数据库如果没有提供相应的连接程序,则可以配置好ODBC连接后,使用OdbcCommand。

►OracleCommand:用于向使用Oracle公开的数据库发送SQL语句,位于System.Data.OracleClient命名空间。在使用OracleCommand向Oracle数据库发送SQL语句时,要引入System.Data.OracleClient命名空间,但是默认情况下是没有该命名控件,此时,需要将程序集System.Data.OracleClient引入到项目中。引入程序集的方法是在项目名称上单击鼠标右键,在弹出的快捷菜单中选择“添加引用”命令,打开“添加引用”对话框。在该对话框中选择System.Data.OracleClient程序集,单击“确定”按钮,即可将其添加到项目中。

Command对象的常用属性及说明

属性名

说明

CommandText

获取或设置要对数据源执行的Transact-SQL语句或存储过程

CommandTimeout

获取或设置在终止执行命令的尝试并生成错误之前的等待

CommandType

获取或设置一个值,该值指示如何解释CommandText属性

Connection

获取或设置SqlCommand类的此实例使用的SqlConnection对象

Parameters

获取SqlParameterCollection对象

Transaction

获取或设置将在其中执行SqlCommand类的SqlTransaction对象

UpdatedRowSource

获取或设置命令结果在由DbDataAdapter类的“Update”方法使用时,如何应用于DataRow对象

Command对象的常用方法及说明

方法名

说明

BeginExecuteNonQuery

启动此SqlCommand对象描述的Transact-SQL语句或存储过程的异步执行

BeginExecuteReader

启动此SqlCommand对象描述的Transact-SQL语句或存储过程的异步执行,并从服务器中检索一个或多个结果集

BeginExecuteXmlReader

启动此SqlCommand对象描述的Transact-SQL语句或存储过程的异步执行,并将结果作为XmlReader对象返回

CreateParameter

创建SqlParameter对象的新实例

EndExecuteNonQuery

完成Transact-SQL语句的异步执行

EndExecuteReader

完成Transact-SQL语句的异步执行,返回请求的SqlDataReader对象

EndExecuteXmlReader

完成Transact-SQL语句的异步执行,将请求的数据以XML形式返回

ExecuteNonQuery

对连接执行Transact-SQL语句并返回受影响的行数

ExecuteReader

将CommandText对象发送到Connection类并生成一个SqlDataReader对象

ExecuteScalar

执行查询,并返回查询所返回的结果集中第一行的第一列,忽略其他行或列

ExecuteXmlReader

将CommandText对象发送到Connection类并生成一个XmlReader对象

ResetCommandTimeout

CommandTimeou属性重置为其默认值

1、设置数据源类型

Command对象有3个重要的属性,分别是Connection、CommandText和CommandType。Connection属性用于设置SqlCommand使用的SqlConnection。CommandText属性用于设置要对数据源执行的SQL语句或存储过程。CommandType属性用于设置指定CommandText的类型。CommandType属性的值是CommandType枚举值,包括StoredProcedure(存储过程的名称)、TableDirect(表的名称)、Text(SQL文本命令)。

如果要设置数据源的类型,则可以通过设置CommandType属性来实现。

2、执行SQL语句

Command对象需要取得将要执行的SQL语句,通过调用该类提供的多种方法,向数据库提交SQL语句。下面介绍SqlCommand对象中的几种执行SQL语句的方法。

(1)ExecuteNonQuery方法

执行SQL语句,并返回受影响的行数,在使用SqlCommand向数据库发送增、删、改命令时,通常使用ExecuteNonQuery方法执行发送的SQL命令。示例代码如下:

//实例化SqlConnection变量conn

conn = new SqlConnection("server=.;database=db_15;uid=sa;pwd=");

//打开连接

conn.Open();

//创建一个SqlCommand对象

SqlCommand cmd = new SqlCommand();

//设置Connection属性,指定使其用conn连接数据库

cmd.Connection = conn;

//设置CommandText属性,以及执行的SQL语句

cmd.CommandText = "updatetb_command set 奖金=50 where 性别='女'";

//设置CommandType属性为Text,使其只执行SQL语句文本形式

cmd.CommandType = CommandType.Text;

//使用ExecuteNonQuery方法执行SQL语句

int i = Convert.ToInt32(cmd.ExecuteNonQuery());

label2.Text= "共有" + i.ToString() + "名女员工获得奖金";

[注]:如果想要执行存储过程,应该将CommandType属性设置为StoredProcedure,将CommandText属性设置为存储过程的名称。

(2)ExecuteReader方法

执行SQL语句,并生成一个包含数据的SqlDataReader对象的实例。示例代码如下

//实例化SqlConnection变量conn

SqlConnection conn = new SqlConnection("server=.;database=db_15;uid=sa;pwd=");

conn.Open();//打开连接

//创建一个SqlCommand对象

SqlCommand cmd = new SqlCommand();

//设置Connection属性,指定其使用conn连接数据库

cmd.Connection = 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()){//读取SqlDataReader

//将内容添加到listView1控件中

listView1.Items.Add(sdr[1].ToString());

}

conn.Dispose();//释放连接

(3)ExecuteScalar方法

执行SQL语句,返回结果集中的第一行的第一列。如果结果集为空,返回空引用。示例代码如下所示:

conn = new SqlConnection("server=.;database=db_15;uid=sa;pwd=");

conn.Open();

//创建一个SqlCommand对象

SqlCommand cmd = new SqlCommand();

//设置Connection属性

cmd.Connection = conn;

//设置CommandText属性以及SQL语句

cmd.CommandText = "selectcount(*) from TableName";

//设置CommandText属性为Text,使其只执行SQL语句文本形式

cmd.CommandType = CommandType.Text;

//使用ExecuteScalar方法获取指定数据表中的数据数量

int i = Convert.ToInt32(cmd.ExecuteScalar());

label2.Text= "数据表中共有:" + i.ToString() + "条数据";

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值