Datatbel和 string之间的相互转换
Datatable 到 string
public static string DataTableToString(DataTable dt)
{
//!@&,#$%,^&*为字段的拼接字符串
//为了防止连接字符串不在DataTable数据中存在,特意将拼接字符串写成特殊的字符!
StringBuilder strData = new StringBuilder();
StringWriter sw = new StringWriter();
//DataTable 的当前数据结构以 XML 架构形式写入指定的流
dt.WriteXmlSchema(sw);
strData.Append(sw.ToString());
sw.Close();
strData.Append("@&@");
for (int i = 0; i < dt.Rows.Count;i++) //遍历dt的行
{
DataRow row = dt.Rows[i];
if (i > 0) //从第二行数据开始,加上行的连接字符串
{
strData.Append("#$%");
}
for (int j = 0; j < dt.Columns.Count; j++) //遍历row的列
{
if (j > 0) //从第二个字段开始,加上字段的连接字符串
{
strData.Append("^&*");
}
strData.Append(Convert.ToString(row[j])); //取数据
}
}
return strData.ToString();
}
string 到Datatable
public static DataTable StringToDataTable(string strdata)
{
if (string.IsNullOrEmpty(strdata))
{
return null;
}
DataTable dt = new DataTable();
string[] strSplit = {"@&@"};
string[] strRow = {"#$%"}; //分解行的字符串
string[] strColumn = {"^&*"}; //分解字段的字符串
string[] strArr = strdata.Split(strSplit, StringSplitOptions.None);
StringReader sr = new StringReader(strArr[0]);
dt.ReadXmlSchema(sr);
sr.Close();
string strTable = strArr[1]; //取表的数据
if (!string.IsNullOrEmpty(strTable))
{
string[] strRows = strTable.Split(strRow, StringSplitOptions.None); //解析成行的字符串数组
for (int rowIndex = 0; rowIndex < strRows.Length; rowIndex++) //行的字符串数组遍历
{
string vsRow = strRows[rowIndex]; //取行的字符串
string[] vsColumns = vsRow.Split(strColumn, StringSplitOptions.None); //解析成字段数组
dt.Rows.Add(vsColumns);
}
}
return dt;
}
Datatbel和 string之间的相互转换的更多相关文章
- json和string 之间的相互转换
json和string 之间的相互转换 <script type="text/javascript"> //先认识一下js中json function showInfo ...
- C#List<string>和string[]之间的相互转换
一.LIST概述 所属命名空间:System.Collections.Generic public class List<T> : IList<T>, IColle ...
- C# char[]与string之间的相互转换
string 兑换 Char[] string ss = "abcdefg"; char[] cc = ss.ToCharArray(); Char[] 转换成string str ...
- std::string, std::wstring, wchar_t*, Platform::String^ 之间的相互转换
最近做WinRT的项目,涉及到Platform::String^ 和 std::string之间的转换,总结一下: (1)先给出源代码: std::wstring stows(std::string ...
- Java基础【基本数据类型包装类、int与String 之间的相互转换】
为什么会有基本类型包装类? 将基本类型数据类型封装成对象,这样的好处可以在对象中定义更多方法操作该数据. 包装类常用的操作就是用于基本数据类型与字符串之间的转换 问题:int a=100; 为什么不能 ...
- c++ 中 char 与 string 之间的相互转换问题
第一部分: 将 char * 或者 char [] 转换为 string 可以直接赋值,转换. 第二部分: 将 string 转换为 char * 或者 cha ...
- int 和String之间的相互转换
int ---> String 1. 和 "" 进行拼接 2. 使用String类中的静态方法valueOf: public static String valueOf(in ...
- C# Enum Name String Description之间的相互转换
最近工作中经常用到Enum中Value.String.Description之间的相互转换,特此总结一下. 1.首先定义Enum对象 public enum Weekday { [Descriptio ...
- C#中String 与Color之间的相互转换
C#中String 与Color之间的相互转换 ————————————宋兴柱 其实,我们平常如果要在数据库存放Color类型值的话,肯定会在数据库中建立varchar类型.对吧.但是Colo ...
随机推荐
- Linux 独立安装subversion-1.8.18
一.所需软件包 1.apr-1.4.6.tar.gz 下载地址:http://apr.apache.org/ 2.apr-util-1.4.1.tar.gz 下载地址:http://apr.apa ...
- asp.net mvc5中使用缓存依赖SqlCacheDependency
缓存是用来提高应用性能,降低服务器压力.适用于数据不易变,数据易通用的情景, 对于动态查询数据,例如数据分析,最好放弃使用缓存.使用缓存最麻烦的就是保持源数据和缓存的中的数据一致. 缓存(Cache) ...
- 一道javascript面试题(闭包与函数柯里化)
要求写一个函数add(),分别实现能如下效果: (1)console.log(add(1)(2)(3)(4)()); (2)console.log(add(1,2)(3,4)()); (3)conso ...
- dotweb框架之旅 [二] - 常用对象-App(dotweb)
dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...
- iOS的异步绘制--YYAsyncLayer源码分析
iOS的异步渲染 最近看了YYAsyncLayer在这里总结一下.YYAsyncLayer是整个YYKit异步渲染的基础.整个项目的Github地址在这里.你可以先下载了一睹为快,也可以跟着我一步一步 ...
- spring mvc 多线程并发
ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序. http://www.xuebuyuan.com/1628190.html 我们 ...
- 深入浅出Diffie–Hellman
一.作者 这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie).马丁·赫尔曼(Martin Edward Hellman)于1976年发表. 二.说明 它是一种安全协 ...
- Linux CentOS7 安装 Mysql5.7.19
第二次安装会安装失败 1.先停止mysql服务 service mysql stop 2.检查是否卸载干净 find / -name mysql 多用几个命令检查,不要删到其他组件的 ...
- Mysql Show ProcessList命令
每个MySql连接,或者叫线程,在任意一个给定的时间都有一个状态来标识正在进行的事情.可以使用 SHOW [FULL] PROCESSLIST 命令来查看哪些线程正在运行,及其查询状态,Command ...
- JavaScript中的比较规则之“==”运算符
"=="运算符(两个操作数的类型不相同时) 如果一个值是null,另一个值是undefined,则它们相等 如果一个值是数字,另一个值是字符串,先将字符串转换为数学,然后使用转换后 ...