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( ...
随机推荐
- 攻克数通,斩获云计算!誉天Double HCIE学员考证秘笈揭晓
不知不觉,已经过了四个月的时间了,我是六月多报名云计算的,本来是奔着邹Sir去的,但是当时邹sir已经上到HCIE的课程了,只能蹭学弟之前的录屏看.等到七月八号,又正式跟了曾曦老师上了一次完整的课程. ...
- Centos7 搭建LAMP环境(编译安装)
1.查看系统版本 [niemx@localhost ~]$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 2.安装软件准备 ...
- node中mysql和短信使用方法(3)
一.mysql的使用 使用mysql首先得有数据库并且表里面有数据,我创建了数据库newsql,里面Tables有表company等等. company有id,name,other等字段 1.导入my ...
- VueRouter爬坑第二篇-动态路由
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- windows和linux的开机顺序
windows的开机顺序: 启动自检阶段---初始化启动阶段---Boot加载阶段---检测和配置硬件阶段---内核加载阶段---屏幕显示. linux的开机启动顺序: 加载Bios---读取MBR- ...
- WPF 因设置不期望的DataContext,导致的绑定异常
在MainWindow中,创建一个背景属性BrushTest,并将其绑定至界面 <Window x:Class="WpfApp8.MainWindow" xmlns=&quo ...
- 经典sql面试题(学生表_课程表_成绩表_教师表)
转载:https://www.cnblogs.com/qixuejia/p/3637735.html 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cna ...
- 【设计模式大法】Iterator模式
Iterator模式 --一个一个遍历 在Java中的for语句中 i++的作用是让 i 的值在每次循环后自增1,这样就可以访问数组中的下一个元素.下下一个元素.再下下一个元素,也就实现了从头至尾逐一 ...
- 程序员的算法课(18)-常用的图算法:广度优先(BFS)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- selenium处理iframe和动作链
selenium处理iframe和动作链 iframe iframe就是一个界面里嵌套了其他界面,这个时候selenium是不能从主界面找到子界面的属性,需要先找到子界面,再去找子界面的属性 动作链( ...