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执行查询实例的更多相关文章

  1. 三层登录实例VB.NET版详解---理论加实战篇

    层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠:重复:层峦叠嶂|层出不穷.最后-量词,用于可以分出层次的事物,女孩儿强烈的第六感,三层中的层一定是 ...

  2. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

  3. Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]

    [虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...

  4. vb.net三层实现登录例子

    看三层已经很长时间了,中间有经过了期末考试.回家等等琐事,寒假开学的我已经回想不起什么事三层了,经过了三四天的重新复习,再加上查看各期师哥师姐的博客,终于,自己完成了C#视频中的登录小例子,下面就和大 ...

  5. ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...

  6. ado.net(class0503)

    ado.net组成 数据提供程序 connection //连接对象 command executeNonQuery //执行增删改 executeScalar //执行查询返回首行首列 execut ...

  7. ASP.NET - ADO.NET框架

    ADO.NET(ActiveX Data Objects) ADO.NET是一个COM组件库,用于在使用Microsoft技术的代码中访问数据库. SQL数据操作类 SqlConnection类(Sy ...

  8. 使用C#开发数据库应用程序

    第一章 用Hello ACCP.NET快速热身(一) 1-1.进入C#世界 a.第一个C#程序 (1)新建项目[项目:project] (2)生成解决方案[生成:build,解决方案:solution ...

  9. ADO.NET基础知识

    ADO.NET定义 ADO是ActiveX Data Objects的缩写,ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序,就是一组类 ...

随机推荐

  1. BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate

    1.在lib中加入必要的包,导入后结果如下: lib打包下载:SSH-lib.jar  (struts2.3.1.2  spring3.0.5 hibernate3.6.10.Final) 只包含必要 ...

  2. C++实现base64编码

    将昨天的php代码改造成C++ /*base_64.h文件*/ #ifndef BASE_64_H #define BASE_64_H /** * Base64 编码/解码 * @author lir ...

  3. spoj 2319 BIGSEQ - Sequence

    You are given the sequence of all K-digit binary numbers: 0, 1,..., 2K-1. You need to fully partitio ...

  4. eclipse 比较好的插件

    tomcat 插件 egit github 插件 subeclipse 插件 Properties Editor Properties Editor 编辑java的属性文件,并可以自动存盘为Unico ...

  5. Application路径

    根目录:StreamingAssets文件夹 #if UNITY_EDITOR string filepath = Application.dataPath +"/StreamingAsse ...

  6. Hibernate 框架的配置之一

    1. 下载hibernate distribution 3.6.* final包 2. 解压zip包 3. 将lib目录下jpa和required目录下的jar包都拷贝到自己工程的WEB-INF目录下 ...

  7. CSS预处理器之SASS用法指南

    CSS预处理器之SASS用法指南 一.什么是SASS Sass是是一种基于ruby编写的CSS预处理器,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 诞生于200 ...

  8. 又是干货,这个春节感觉吃饱了。各方面---RHCS集群理论

    什么是集群?    集群是一组(>2)相互独立的,通过高速网络互联的计算机组成的集合.群集一般可以分为科学集群,负载均衡集群,高可用性集群三大类.    科学集群是并行计算的基础.它对外就好象一 ...

  9. activiti入门3排他网关,并行网管,包含网关,事件网关(转)

    网关用来控制流程的流向 网关可以消费也可以生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量  写个带有分支的一个基本流程 流程图: 部署 ...

  10. jdk环境变量配置方法

    jdk环境变量配置方法: 在安装完jdk后,还需要对jdk的环境变量进行配置才能正常使用,下面教大家如何配置jdk环境变量: 1.右键选择 计算机→属性→高级系统设置→高级→环境变量 2.系统变量→新 ...