黑马程序员--学习整理 ExecuteNonQuery, ExecuteScalar, ExecuteReader, DataSet

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------



对于手写SQL连接中,经常会用到ExecuteNonQuery, ExecuteScalar, ExecuteReader, DataSet
它们的区别如下
1. ExecuteNonQuery
方法
用法:ExecuteNonQuery方法用来执行 INSERTUPDATEDELETE和其他没有返回值得SQL命令,——比如CREATEDATABASE CREATE TABLE命令。当使用 INSERTUPDATEDELETE时,ExecuteNonQuery返回被命令影响的行数。
代码
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = sql;\\sql
insertupdatedelete等不需要返回数据的SQL语句
cmd.ExecuteNonQuery();
}
}
2.ExecuteScalar
方法
ExecuteScalar
方法执行一个SQL命令返回结果集的第一列的第一行。它经常用来执行SQLCOUNTAVGMINMAX SUM 函数,这些函数都是返回单行单列的结果集。主要是用于数量的统计,比如select count(*) from table,select avg(name) from table
代码如下
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select count(*) from message";\\
主要用在一些需要返回计算结果SQL语句中
int sum = (int)cmd.ExecuteScalar();
MessageBox.Show(sum.ToString());
}
}
3.ExecuteReader
方法
用法:ExecuteReader方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader返回一个DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进。对SqlDataReader.Read的每次调用都会从结果集中返回一行。
代码
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText="select * from message";
using(SqlDataReader reader=cmd.ExecuteReader())
{
while (reader.Read())\\
因为ExecuteReader查询完的结果是在数据库里面的,并不是返回到客户端,所以请求ExecuteReader查询结果时,只能一行一行的向数据库服务器申请,当reader.Read()=true证明还有数据,当reader.Read()=false时表示上回读取的是最后一行数据
{
string name=reader.GetString(2);
MessageBox.Show(name);
}
}
}
}
4.DataSet
方法
ExecuteReader类似,都能查询表数据。但是也不尽相同,DataSet查询的结果返回到客户端而ExecuteReader查询结果在服务器上, DataSet可以返回一个表的数据类型(DataTable),ExecuteReader只能逐行申请数据并不能直接查询整个表的数据。
代码
using (SqlConnection con = new SqlConnection("Data Source=.;InitialCatalog=lianxi;User ID=sa
assword="))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select * from message";
SqlDataAdapter ad=new SqlDataAdapter(cmd);\\
执行SQL返回数据
DataSet ds=new DataSet();\\
定义DataSet
ad.Fill(ds);\\
用返回的数据填充DataSet
DataTable dt=ds.Tables[0];\\
读取表0的数据,杨老师说DataSet中可以放多个表,但是大部分的用法就是只有一个表,所以每次读取Tables[0]就可以了
GridView1.datasource=dt
\\将表数据绑定GridView控件,但是这是个效果展示,杨老师很不推荐这样写,支持手写绑定数据DataGrid
}
}
歇会去。。欢迎各位讨论学习和批评指正


---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net/heima/
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值