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( ...
随机推荐
- React-Hook
import React, { useState } from 'react'; // Hook 写法 function App2 () { const [count,setCount] = useS ...
- vue项目中安装使用vux
vux是个vue的移动端框架. 目前移动端UI框架这么多,为啥选择vux呢?vux虽然说是个个人维护项目,但是有15000+个star,应该不比其他的团队开源框架差. 最重要的是,目前要做微信公众号和 ...
- win10中java环境变量配置
首先,应该安装jdk,jdk的安装一般是jdk8,一般情况下去官网下载,此处有jdk8的网盘链接: -- 在安装jdk时候,可以看下这篇jdk和jre区别的博客--,有助于理解两者的区别和联系. 接触 ...
- DDD实战与进阶 - 值对象
目录 DDD实战与进阶 - 值对象 概述 何为值对象 怎么运用值对象 来看一个例子 值对象的持久化 总结 DDD实战与进阶 - 值对象 概述 作为领域驱动设计战术模式中最为核心的一个部分-值对象.一直 ...
- SpringCloud Alibaba微服务实战 - 基础环境准备
Springcloud Aibaba现在这么火,我一直想写个基于Springcloud Alibaba一步一步构建微服务架构的系列博客,终于下定决心从今天开始本系列文章的第一篇 - 基础环境准备. 该 ...
- Sql server中用现有表中的数据创建Sql的Insert插入语句
之前,在Codeproject发表过一篇关于用现有表中数据创建Insert的Sql语句的存储过程,今天将其搬到这里来,注意本存储过程仅适用于SQL SERVER. 介绍 一些时候,你想导出一些现有表中 ...
- 使用WireMock进行更好的集成测试
无论您是遵循传统的测试金字塔还是采用诸如"测试蜂窝"这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试用例. 您可以编写不同类型的集成测试.从持久性测试开始,您可以检查组 ...
- C++桌面计算机
#include<iostream> #include<string> #include<map> #include<cctype> using nam ...
- python_Django
1.Python用具 - pip 1.作用: Python的软件包管理器,有一些python包被集成到了pip中.只要被集成到pip中的包,都允许通过pip直接安装 2.安装 ...
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题【转】
Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题 http://blog.didispace.com/Spring-Boot-And-Feign- ...