ADO.NET中Command的三个方法

1、ExecuteReader通常用来执行一个查询操作,返回一个SqlDataReader对象或OleDbDataReader对象。当使用DataReader对象时,它被设计为一个只读、只进的数据流。这些数据流都是从数据库返回的。所以,每次的访问或操作只有一个记录保存在服务器的内存中。

DataReader具有较快的访问能力,并且使用较少的服务器资源。DataReader提供了“游标式”读取方法,当从结果中读取了一行,则“游标”会继续读取到下一行。通过Read方法可以一行一行读取数据,并且返回bool值,以判断从数据库中是否读取完数据。示例:

public static void ExecuteReader(string strCon) { SqlConnection con = new SqlConnection(strCon); string cmdText = "select top 5 * from stuInfo"; SqlCommand cmd = new SqlCommand(cmdText, con); con.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); Console.WriteLine("学号 姓名 专业"); while (dr.Read()) { Console.WriteLine("{0} {1} {2}", dr["stuid"], dr["name"], dr["dept"]); } dr.Close(); }

执行结果:

执行ExecuteReader方法时,通过CommandBehavior的枚举值CloseConnection可在关闭SqlDataReader对象时自动断开SqlConneciton连接。

2、ExecuteNonQuery通常对数据库中的数据进行增、删、改的操作,返回受影响的行数(为整型)。。在进行数据库事务处理时或不需要DataSet为数据库进行更新时,ExecuteNonQuery()方法是数据操作的首选。因为ExecuteNonQuery()支持多种数据库语句的执行。

  注:当使用select查询时,返回值为-1;使用create table或drop table返回0。示例:

public static int ExecuteNonQuery(string strCon)

{

int result=0;

try

{ //使用useing语句来关闭连接和释放SqlCommand对象

using (SqlConnection con = new SqlConnection(strCon))

{

    using (SqlCommand cmd = new SqlCommand())

 {

    cmd.CommandText = "insert into stuInfo values('20091005',N'刘欣',N'男',N'计算机科学与技 术','60701','1989/11/11','13987467828')";

     cmd.Connection = con; con.Open(); result = cmd.ExecuteNonQuery();

     Console.Write(result);

}

}

}

catch (SqlException ex)

{

Console.Write(ex.Errors);

}

return result;

}

3、ExecuteScalar用于执行SQL语句,但返回的是object类型的数据。如果执行的是查询语句select时,则查询返回的结果是第一行的第一列;如果不是查询语句时,则返回的事为实例化的对象,必须通过类型转换得到。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值