executereader执行查询实例
executereader方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。executereader 返回一个datareader对象:如果在sqlcommand对象中调用,则返回sqldatareader;如果在oledbcommand对象中调用,返回的是oledbdatareader。可以调用datareader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对sqldatareader.read的每次调用都会从结果集中返回一行。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.windows;
using system.windows.controls;
using system.windows.data;
using system.windows.documents;
using system.windows.input;
using system.windows.media;
using system.windows.media.imaging;
using system.windows.navigation;
using system.windows.shapes;
using system.data.sqlclient;
namespace executereader执行查询
{
/// <summary>
/// window1.xaml 的交互逻辑
/// </summary>
public partial class window1 : window
{
public window1()
{
initializecomponent();
}
private void button1_click(object sender, routedeventargs e)
{
using (sqlconnection conn = new sqlconnection("data source=.;initial catalog=mytest;user id=sa;password=123;"))
{
conn.open();
using (sqlcommand cmd = conn.createcommand())
{
cmd.commandtext = "select * from t_student where age<100";
using (sqldatareader reader = cmd.executereader())//executereader返回的对象类型是sqldatareader
{
//read是bool类型,初始指针指向第一条数据之前,每调用一次reader,指针就下移一条,只要没有移到最后一条之后,就返回true。
while (reader.read())
{
string name = reader.getstring(1);//getstring(1)得到表中第一列的值,用name接收,因为查的是*,所以就和表中的列数一样。
int age = reader.getint32(2);
messagebox.show(name+","+age);
}
}
}
}
}
private void btnquery_click(object sender, routedeventargs e)
{
using (sqlconnection conn = new sqlconnection("data source=.;initial catalog=mytest;user id=sa;password=123;"))
{
conn.open();
using (sqlcommand cmd = conn.createcommand())
{
//cmd.commandtext = "select age from t_student where name='"+ txtname.text +"'";//字符串拼接查找数据库。
cmd.commandtext = "select age from t_student where name=@name or age>@age";//与数据库进行数据对比。
//@参数:不能用来替换表名,字段名,select之类的关键字等。
cmd.parameters.add(new sqlparameter("@name",txtname.text));
cmd.parameters.add(new sqlparameter("@age",convert.toint32(txtage.text)));
using (sqldatareader reader = cmd.executereader())
{
while (reader.read())
{
//getint32获得的是int类型
//getint64获得的是long类型(bigint)
int age = reader.getint32(0);//getint32(0)中的参数是看cmd.commandtext中的查询结果有几个。
messagebox.show(age.tostring());
}
}
}
}
}
private void btnhobby_click(object sender, routedeventargs e)
{
using (sqlconnection conn = new sqlconnection("data source=.;initial catalog=mytest;user id=sa;password=123;"))
{
conn.open();
using (sqlcommand cmd = conn.createcommand())
{
cmd.commandtext = "select * from t_student where name like '张%'";
using (sqldatareader reader = cmd.executereader())
{
while (reader.read())
{
string hobby = reader.getstring(3);
messagebox.show(hobby);
}
}
}
}
}
private void btnquery1_click(object sender, routedeventargs e)
{
using (sqlconnection conn = new sqlconnection("data source=.;initial catalog=mytest;user id=sa;password=123;"))
{
conn.open();
using (sqlcommand cmd = conn.createcommand())
{
cmd.commandtext = "select hobbit from t_student where age>@age or hobbit =@hobbit";
cmd.parameters.add(new sqlparameter("@age", txtage1.text));
cmd.parameters.add(new sqlparameter("@hobbit",txthobby.text));
using (sqldatareader reader = cmd.executereader())
{
while (reader.read())
{
string str = reader.getstring(0);
messagebox.show(str);
}
}
}
}
}
}
}
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
C#实现猜数字游戏
本文实例为大家分享了c#实现猜数字游戏具体代码,供大家参考,具体内容如下给定一个0-100的随机数字猜其大小题目样式:电脑产生一个0到100之间的随机数字,并且...
[阅读全文]
-
-
C# 可空类型的具体使用
在项目中我们经常会遇到可为空类型,那么到底什么是可为空类型呢?下面我们将从4个方面为大家剖析。1、可空类型基础知识顾名思义,可空类型指的就是某个对象类型可以为空...
[阅读全文]
-
-
-
C#实现猜数字小游戏
本文实例为大家分享了c#实现猜数字小游戏的具体代码,供大家参考,具体内容如下效果如图:代码:using system;using system.collecti...
[阅读全文]
-
-
C#实现简单俄罗斯方块
最近在看《.net游戏编程入门经典 c#篇》 第一章介绍了如何制作俄罗斯方块,自己试了试按照书上的步骤,可算是完成了。于是写下这篇文章留作纪念。1.类的设计在充...
[阅读全文]
-
-
网友评论