3_04_MSSQL课程_Ado.Net_.ExcuteReader()(SQLDataReader)
ExcuteNonQuery(); 返回影响的行数
ExcuteSacalar();返回第一行第一列
ExcuteReader(); Reader,指针,指向表的表头。只是指向,数据仍在数据库中。
SqlDataReader reader=cmd.ExcuteReader();执行完之后,将指针指向数据库的表头(reader对象指向了表的表头行)默认指向表头(标题行)
reader.Read(); 指针往下走一步 ,返回的是bool类型
var str=reader["userId"]读取当前行(数据行一)列的值
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace _02ProvinceCitySelect
{
public partial class MainFrm : Form
{
public MainFrm()
{
InitializeComponent();
} private void MainFrm_Load(object sender, EventArgs e)
{
//加载数据库中的所有的省的数据
string connStr = ConfigurationManager.ConnectionStrings["LJK_SQLServerDBConnectionString"].ConnectionString; //创建链接对象
using (SqlConnection conn =new SqlConnection(connStr))
{
using (SqlCommand cmd =conn.CreateCommand())
{
conn.Open();//***********8
cmd.CommandText =@"select AreaId, AreaName, AreaPid from [dbo].[AreaFull] where AreaPId=0";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while ( reader.Read())
{
//int AreadId = int.Parse(reader["AreaId"].ToString());
//把表格的数据转换成 对象数据
AreaInfo areaInfo = new AreaInfo();
areaInfo.AreaId = int.Parse(reader["AreaId"].ToString());
areaInfo.AreaName = reader["AreaName"].ToString();
areaInfo.AreaPId = int.Parse(reader["AreaPId"].ToString());
//把省的信息放到 ComboBox中。ComboBox显示信息是 Item对象的ToString()
this.cbxProvince.Items.Add(areaInfo);
}
}//end useing reader
}//end useing cmd
}//end using conn this.cbxProvince.SelectedIndex = ;
} private void cbxProvince_SelectedIndexChanged(object sender, EventArgs e)
{
AreaInfo provinceAreaInfo= this.cbxProvince.SelectedItem as AreaInfo;
//判断是否 拿到的城市为空
if (provinceAreaInfo == null)
{
return;
}
//根据省的Id获取所有的城市信息 //加载数据库中的所有的省的数据
string connStr = ConfigurationManager.ConnectionStrings["LJK_SQLServerDBConnectionString"].ConnectionString; //创建链接对象
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();//***********8
cmd.CommandText = @"select AreaId, AreaName, AreaPid from [dbo].[AreaFull] where AreaPId="+provinceAreaInfo.AreaId;
using (SqlDataReader reader = cmd.ExecuteReader())
{
this.cbxCity.Items.Clear();
while (reader.Read())
{
//int AreadId = int.Parse(reader["AreaId"].ToString());
//把表格的数据转换成 对象数据
AreaInfo areaInfo = new AreaInfo();
areaInfo.AreaId = int.Parse(reader["AreaId"].ToString());
areaInfo.AreaName = reader["AreaName"].ToString();
areaInfo.AreaPId = int.Parse(reader["AreaPId"].ToString());
//把省的信息放到 ComboBox中。ComboBox显示信息是 Item对象的ToString()
this.cbxCity.Items.Add(areaInfo);
}
}//end useing reader
}//end useing cmd
}//en
this.cbxCity.SelectedIndex = ; } private void btbExport_Click(object sender, EventArgs e)
{
#region 选择保存文件
string fileName = string.Empty;// 保存的文件名
//让用户选择 要保存的文件路径
using (SaveFileDialog sfd = new SaveFileDialog())
{
if (sfd.ShowDialog() != DialogResult.OK)
{
return; //嵌套的方式,尽量少的嵌套
}
fileName = sfd.FileName;
}
#endregion // 查询数据数据,写入数据
string connStr = ConfigurationManager.ConnectionStrings["LJK_SQLServerDBConnectionString"].ConnectionString;
using (SqlConnection conn =new SqlConnection(connStr))
{
using (SqlCommand cmd =conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "select AreaId, AreaName, AreaPid from [dbo].[AreaFull]";
using (SqlDataReader reader =cmd.ExecuteReader())
{
string tempLine = string.Empty;
using (StreamWriter writer =new StreamWriter(fileName)) //文件流操作的学习
{
while (reader.Read())
{
tempLine = reader["AreaId"] + "," +
reader["AreaName"] + "," +
reader["AreaPId"];
writer.WriteLine(tempLine);//写入文本文件
}
} }
}
}
}
}
}
reader.Read(); 指针继续往下走一行
var str=reader["userAge"]读取当前行(数据行二)列的值
在线的数据库读取,后面还有离线的数据库读取(一次性加载数据库)
3_04_MSSQL课程_Ado.Net_.ExcuteReader()(SQLDataReader)的更多相关文章
- 3_08_MSSQL课程_Ado.Net_子查询
子查询 1.把一个查询结果作为一个表来使用,就是子查询. 2.把一个查询结果作为一个 表达式进行使用就是子查询. (分页Sql)
- 3_07_MSSQL课程_Ado.Net_委托、事件
委托和事件的区别? (1)委托是一个类. 事件是一个委托类型的实列. (2)委托可以在定义委托实列的类的外部触发执行.(不安全) 事件只能能在定义它的类的内部触发执行.(安全),类外部只能注册事件的响 ...
- 3_06_MSSQL课程_Ado.Net_接口、委托、事件、观察者模式
1.接口——实现接口 2.委托.事件(定义事件.注册事件.触发事件) 3.接口和事件的区别,怎么分情况用? 4.观察者模式作为设计模式的一种,也称发布订阅模式. 应对类型的变化和个数的变化. 中介设计 ...
- 3_03_MSSQL课程_Ado.Net_数据导入
数据库数据导出和导入 思路: --思路: 1.找到文件 2.读取文件 3.第一行 忽略 4.insert using System; using System.Collections.Generic; ...
- 3_03_MSSQL课程_Ado.Net_登录复习和ExcuteScalar
SQL注入 ->登陆窗体破解 ->配置文件 ->首先在 app.Config文件中添加 节点,如下: <connectionStrings> <add name=& ...
- 3_02_MSSQL课程_Ado.Net_连接池_连接字符串
连接池技术:是一种对象池技术. 连接对象频繁的开启和关闭操作. innerConnection 先从池子里面拿,如果没有创建新的!!连接池有大小,最大/最小. 提高了连接对象的重用. Asp.ne ...
- 3_01_MSSQL课程_Ado.Net_连接数据库
1. Ado.Net 是一组微软的c#操作数据库的类库. 2.开发人员将界面上的数据(用户的操作和输入的数据)存储到数据库当中.. 3.数据库访问的驱动.即:应用程序和数据库的桥梁. 4.驱动层. S ...
- 3_05_MSSQL课程_Ado.Net_SQLDataAdapter
using System; using System.Collections.Generic; using System.ComponentModel; using System.Configurat ...
- 3_05_MSSQL课程_Ado.Net_DataSet数据集
//创建一个内存的数据集 DataSet ds=new DataSet("LJK"); //创建一张内存表 DataTable dt01=new DataTable("d ...
随机推荐
- C 语言实例 - 判断闰年
用户输入年份,判断该年份是否为闰年. #include <stdio.h> int main() { int year; printf("输入年份: "); scanf ...
- UVA 11464 偶数矩阵(递推 | 进制)
题目链接:https://vjudge.net/problem/UVA-11464 一道比较好的题目. 思路如下: 如果我们枚举每一个数字“变”还是“不变”,那么需要枚举$2^{255}$种情况,很显 ...
- LA 2995 立方体成像(模拟)
题目链接:https://vjudge.net/problem/UVALive-2995 这道题的主要难点在于三维坐标系的建立,然后在坐标系中进行迭代更新. 注意用宏定义来简化代码. AC代码: #i ...
- Azure虚拟机网站部署 防火墙设置
唯一需要注意的是当你的网站设置的端口不是默认的80的时候,需要在防火墙那里将你新设置的端口设置为allow 先要到云的后台设置 “入站安全规则”--> 将你的网站端口设置为Allow 1.通过 ...
- 阿里云服务器-2.使用putty连接
1.下载PuTTY 进入官网 点击我跳转 点击here 看自己电脑是多少位选择下载 2.安装 一直点击下一步就行 这里可以选择也可以不选择,这会在创建桌面快捷文件 看图注意事项 这里也可以用密匙,先去 ...
- Postman如何测试Webservice接口?
一般情况下使用soapui工具测试ws接口,那么能不能使用postman测试呢?当然可以,往下看. 1. 首先请求类型为post 填写上ws地址 ,url地址后不追加?wsdl 2. 设置请求头 he ...
- JavaScript 对象属性与方法
对象的创建: 1 字面量创建 var obj = {a:1,b:2}; 2 构造函数创建 var obj = new Object(); obj.a = 1; obj.b = 2; 3 Object. ...
- Go语言基础之os
文章引用自 package os import "os" os包提供了操作系统函数的不依赖平台的接口.设计为Unix风格的,虽然错误处理是go风格的:失败的调用会返回错误值而非错误 ...
- cc攻击怎么防御,如何防止cc攻击?
当我们访问一个网站时,如果网站页面越简单,访问速度越快,页面越漂亮,加载速度就越慢,因为要加载更多东西,服务器压力也会比较大.cc攻击就是利用这种弱点,使用大量代理服务器,对网站进行攻击,消耗网站服务 ...
- zookeeper 源码(一) 选举和同步数据
前言 在开始阅读代码前我们先来了解一下zk 的大致结构,具体大概要实现的核心功能有那些,心中有个大概的框架阅读代码时再深入其中的细节,就会非常好懂,本人觉得这是一个阅读源码的好方法,可以最快地切入到源 ...