ExecuteReader执行查询实例
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);
}
}
}
}
}
}
}
ExecuteReader执行查询实例的更多相关文章
- 三层登录实例VB.NET版详解---理论加实战篇
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠:重复:层峦叠嶂|层出不穷.最后-量词,用于可以分出层次的事物,女孩儿强烈的第六感,三层中的层一定是 ...
- ADO.NET对象的详解
1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...
- Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]
[虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...
- vb.net三层实现登录例子
看三层已经很长时间了,中间有经过了期末考试.回家等等琐事,寒假开学的我已经回想不起什么事三层了,经过了三四天的重新复习,再加上查看各期师哥师姐的博客,终于,自己完成了C#视频中的登录小例子,下面就和大 ...
- ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5
摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...
- ado.net(class0503)
ado.net组成 数据提供程序 connection //连接对象 command executeNonQuery //执行增删改 executeScalar //执行查询返回首行首列 execut ...
- ASP.NET - ADO.NET框架
ADO.NET(ActiveX Data Objects) ADO.NET是一个COM组件库,用于在使用Microsoft技术的代码中访问数据库. SQL数据操作类 SqlConnection类(Sy ...
- 使用C#开发数据库应用程序
第一章 用Hello ACCP.NET快速热身(一) 1-1.进入C#世界 a.第一个C#程序 (1)新建项目[项目:project] (2)生成解决方案[生成:build,解决方案:solution ...
- ADO.NET基础知识
ADO.NET定义 ADO是ActiveX Data Objects的缩写,ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序,就是一组类 ...
随机推荐
- SharePoint 2013 如何使用TaxonomyWebTaggingControl 控件
在该文章中,我将介绍如何使用TaxonomyWebTaggingControl控件, 首先我相信您已经在SharePoint Managed Metadata Service里定义Term Sets, ...
- windows2008 R2 安装wampserver
1. 在官网http://www.wampserver.com/下载,wampserver2.5; 2. 安装时候会缺少msvcr110.dll文件,所以先要安装这个文件: 3. 先从微软下载Visu ...
- 单例-b
这个比较老了,是mrc 里面的 此例以模仿Apple官方文档的单例写出来的.但是一直有一个非常不明白的地方,就是alloc与allocWithZone:的重载中,为什么要return [[self c ...
- !a && !b 和 !(a || b) 的故事
// awk代码,当continue执行时说明书是免费的 || )) { continue } 这段代码大概是半年前写的,半年后过来读,发现已经不理解这段代码了,虽然理解当contniue执行时意味着 ...
- TCP/IP 三次握手和四次握手
三次握手建立连接: 第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己 ...
- 转 一些shell经验
http://www.cnblogs.com/xublogs/archive/2010/03/16/2292254.html http://www.cnblogs.com/stephen-liu74/ ...
- mysql explain 解释
就是10W记录比如全表返回1行 Mysql显示可能是10W oracle是1行 mysql 是预估需要扫描的记录 Oracle 是预估返回的记录
- 解决SecureCRT中文版“数据库里没找到防火墙‘无’”的错误提示
打开SecureCRT时总是会提示没有防火墙,很是讨厌! 怎么解决呢? 第一步:选项->全局选项 第二步:将配置文件夹里面的内容拷贝到资源管理器下进入 第三步:添加FireWalls的文件夹,上 ...
- COJ 2135 Day10-例1
Day10-例1 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 给定N个物品,价格分别为A1, A2…AN.设计一套面值互不 ...
- Linux企业级开发技术(2)——epoll企业级开发之epoll接口
epoll的接口非常简单,总共只有三个函数: 1.int epoll_create(intsize); 生成一个 Epoll 专用的文件描述符,size用来告诉内核这个监听的数目一共有多大.这个参数不 ...