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的遍历的更多相关文章

  1. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  2. C#中DataSet、DataTable、DataReader的区别

    简单说就是:     DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable         DataTable:数据表 ...

  3. C# Datatable、DataReader等转化json

    //对象转换为Json字符串 public static string ToJson(object jsonObject) { object objectValue = string.Empty; s ...

  4. c# DataTable、DataSet、DataReader

    C# DataTable 详解 dataTable.Rows.Count == 0 //判断DataTable 为空 循环执行dataTable数据 DataTable dtSelect = (Dat ...

  5. 通过表达式树把datareader和datatable转换为实体

    续上两篇文章,使用emit构造dynamic method,把 datareader转换为实体,以避免直接使用反射来实现带来的性能损失.代码看似没有纰漏,但是实际上我在framwork4下运行时,调用 ...

  6. DataTable转换为Model实体对象

    记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反 ...

  7. 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel

    步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...

  8. C#中的DataSet、string、DataTable、对象转换成Json的实现代码

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  9. 遍历 DataSet

    DataSet ds=new DataSet ; //获取dataset的第一张table,取其他table只须改下标 DataTable dt=ds.tables[]; //遍历行 foreach( ...

随机推荐

  1. PHP中echo与print语句的实例教程

    在 PHP 中,有两种基本的输出方法:echo 和 print. echo与print的差异 echo能够输出一个以上的字符串. print只能输出一个字符串,并始终返回 1. 提示:echo 比 p ...

  2. 使用Xdroid进行端口映射,出现adb server version (36) doesn't match this client (39); killing...的解决方案

    第一反应就是adb冲突了,因为Xdroid这个产品看起来就不像是给开发人员用的模拟器,因为不能选择各种版本进行适配,所以肯定自带了一个adb. whereis命令发现果然有两个adb,一个直接是安装在 ...

  3. HTML、CSS基础知识

    前端基础 1. CSS 8 1.1. CSS叫做层叠样式表,用来设置页面中元素的样式.背景颜色.字体颜色.字体大小... 8 1.2. CSS负责结构.表现.行为中的表现 8 1.3. 编写的位置 8 ...

  4. 在Kubernetes上运行有状态应用:从StatefulSet到Operator

    一开始Kubernetes只是被设计用来运行无状态应用,直到在1.5版本中才添加了StatefulSet控制器用于支持有状态应用,但它直到1.9版本才正式可用.本文将介绍有状态和无状态应用,一个通过K ...

  5. 请停止编写这么多的for循环!

    在这篇文章中,我想和你一起回到基础知识,并讨论 Java 中的 for 循环.老实说,我正在为自己写这篇博客文章,因为我也会这样做.从 Java 8 开始,我们不必在 Java 中编写太多 for 循 ...

  6. 是谁,在敲打我窗-CSS雨滴动画效果

    1.扯闲篇 是谁在敲打我窗  是谁在撩动琴弦  那一段被遗忘的时光 渐渐地回升出我心坎  是谁在敲打我窗  是谁在撩动琴弦 记忆中那欢乐的情景  慢慢地浮现在我的脑海 那缓缓飘落的小雨  不停地打在我 ...

  7. 【Android - 组件】之Activity的启动模式

    Activity的启动模式目前有四种:standard.singleTop.singleTask 和 singleInstance. 1.standard standard 是标准模式,也是系统的默认 ...

  8. Python 代码块

    代码块 骏马金龙https://www.cnblogs.com/f-ck-need-u/p/9925021.html https://www.cnblogs.com/jin-xin/articles/ ...

  9. VS2019提示scanf不安全问题

    VS2019提示scanf不安全问题 我们现在学的就是使用scanf()语句进行输入,但是vs2019中却报错显示不安全 首先我先来说一下scanf和scanf-s的区别 scanf()函数是标准C中 ...

  10. 查看/设置JVM使用的垃圾收集器

    一.设置垃圾收集器的参数 -XX:+UseSerialGC,虚拟机在Client模式下的默认值,Serial+Serial Old -XX:+UseParNewGC,ParNew+Serial Old ...