DataTable和DataReader的遍历
1、DataTable的遍历
//创建数据表
DataTable dt = GetDataTable("select * from Student");
//存储数据
StringBuilder sb = new StringBuilder();
//循环遍历<br>
//******逐行遍历***************************************
foreach (DataRow row in dt.Rows)//获取每一行
{
for (int i = ; i < dt.Columns.Count; i++)//获取每一行的逐个字段
{
sb.AppendFormat("{0}|", row[i]);//字段之间用 |分割
}
sb.Append("\r\n");//每一行数据换行
}
Console.WriteLine(sb.ToString()); //*******通过转换为数组遍历***********************************
foreach (DataRow row in dt.Rows)
{
// ArrayList list = new ArrayList(row.ItemArray); for (int i = ; i < row.ItemArray.Length; i++)//转换为数组
{
sb.AppendFormat("{0}|", row.ItemArray[i].ToString());//数组遍历
}
sb.Append("\r\n");//每一行回车换行
}
2、DataReader的遍历
//获取数据集
SqlDataReader dr = GetDataReader("select * from Student");
//存储数据
StringBuilder sb = new StringBuilder(); if (dr.HasRows)//如果有数据
{
while (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++) //逐个字段的遍历
{
sb.AppendFormat("{0}|",dr[i]);//字段之间用 |连接
}
sb.Append("\r\n");//每一行数据换行
}
}
//查询数据库返回数据 class SQLhelper
{
private static string connString = ConfigurationManager.ConnectionStrings["connectStr"].ToString();
//查询数据库返回SqlDataReader
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
conn.Close();
throw ex;
}
}
//查询数据库返回DataSet
public static DataSet GetDataSet(string sql, string tablename)
{
using (SqlConnection conn = new SqlConnection(connString))
{
using (SqlDataAdapter sda = new SqlDataAdapter(sql, conn))
{
DataSet ds = new DataSet();
conn.Open();
sda.Fill(ds, tablename);
return ds;
}
}
}
} //App.config: <configuration>
<connectionStrings>
<add name="connectStr" connectionString="Data Source=.;Initial Catalog=MyDataBase;Integrated Security=True"/>
</connectionStrings>
</configuration>
参考:http://www.xuebuyuan.com/445207.html
DataTable和DataReader的遍历的更多相关文章
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- C#中DataSet、DataTable、DataReader的区别
简单说就是: DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTable:数据表 ...
- C# Datatable、DataReader等转化json
//对象转换为Json字符串 public static string ToJson(object jsonObject) { object objectValue = string.Empty; s ...
- c# DataTable、DataSet、DataReader
C# DataTable 详解 dataTable.Rows.Count == 0 //判断DataTable 为空 循环执行dataTable数据 DataTable dtSelect = (Dat ...
- 通过表达式树把datareader和datatable转换为实体
续上两篇文章,使用emit构造dynamic method,把 datareader转换为实体,以避免直接使用反射来实现带来的性能损失.代码看似没有纰漏,但是实际上我在framwork4下运行时,调用 ...
- DataTable转换为Model实体对象
记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反 ...
- 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel
步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- 遍历 DataSet
DataSet ds=new DataSet ; //获取dataset的第一张table,取其他table只须改下标 DataTable dt=ds.tables[]; //遍历行 foreach( ...
随机推荐
- href=”javascript:void(0);
href=”javascript:void(0);”这个的含义是,让超链接去执行一个js函数,而不是去跳转到一个地址,而void(0)表示一个空的方法,也就是不执行js函数. 为什么要使用href=” ...
- 🙀Java 又双叒叕发布新版本,这么多版本如何灵活管理?
文章来源:http://1t.click/bjAG 前言 不知不觉 JDK13 发布已有两个月,不知道各位有没有下载学习体验一番?每次下载安装之后,需要重新配置一下 Java 环境变量.等到运行平时的 ...
- day48天jQuary
今日内容 jQuery jQuery引入 下载链接:[jQuery官网](https://jquery.com/),首先需要下载这个jQuery的文件,然后在HTML文件中引入这个文件,就可以使用这个 ...
- SQL语句实用技巧1
--显示行号 select *, ROW_NUMBER() OVER(Order by TYPENAME ) AS RowNumber from ( select distinct TYPENAME ...
- linux 系统自动定制运行 crontab
在UNIX下怎样实现和Windows下“计划任务”一样的功能 $crontab -e 编辑脚本 $crontab -l 察看脚本 用$crontab -e 编辑脚本,加入下列行 :分 小时 星期 ...
- SpringBoot和SpringCloud的版本对应关系
1.详细的SpringBoot和SpringCloud对应的关系: Spring官方对应关系 2.springCloud与各组件的版本对应关系 官方文档
- 2019-2020-11 20199304 《Linux内核原理与分析》 第十二周作业
ShellShock攻击实验 一.实验简介 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发 二.预备知识 1.shells ...
- Linux基础命令小技巧
总结 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise L ...
- tp5判断多模块下访问PC端和手机端
现在很多网站的手机端和PC端都是分开的模块,这是问题就来了,有些手机端的用户输入了PC端的网址,直接访问了PC端.下面我教大家如何实现手机端用户访问PC时,跳转回手机端. 解决方法:把下面的代码放到公 ...
- 为什么QQ能帮你找到失散多年的兄弟?----图论
编程三分钟的第 44 篇原创文章 为什么qq里"可能认识的人"功能推荐的如此精准? 为什么两个没有什么联系的朋友会相互认识? 一切的背后到底是道德的沦丧,还是人性的扭曲 ? 让我们 ...