datatabe 与string
DataTable到string
/// <summary> /// DataTable 到 string /// </summary> /// <param name="dt"></param> /// <returns></returns> 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
/// <summary> /// string 到 DataTable /// </summary> /// <param name="strdata"></param> /// <returns></returns> 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; }
datatabe 与string的更多相关文章
- DataTable to byte[]、DataTable to XML(string)
DataTabe 对象在很多地方都会用到,特别是在Web Service.Socket等需网络传输的地方. 但是在有些地方,如果直接传递的话,程序可能会报告DataTable无法序列化错误. 解决问题 ...
- 透过WinDBG的视角看String
摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...
- js报错: Uncaught RangeError: Invalid string length
在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...
- c# 字符串连接使用“+”和string.format格式化两种方式
参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...
- 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed
之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
随机推荐
- 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下, ...
- OpenJudge cdqz/Data Structure Challenge 2 (Problem 5822) - 可持久化线段树
描述 给一个空数列,有M次操作,每次操作是以下三种之一: (1)在数列后加一个数 (2)求数列中某位置的值 (3)撤销掉最后进行的若干次操作(1和3) 输入 第一行一个正整数M. 接下来M行,每行开头 ...
- CIL锁,GIL与线程池的区别,进程池和线程池,同步与异步
一.GIL锁 什么是GIL? 全局解释器锁,是加在解释器上的互斥锁 GC是python自带的内存管理机制,GC的工作原理:python中的内存管理使用的是应用计数,每个数会被加上一个整型的计数器,表示 ...
- 安装旧版本的Firefox
在Ubuntu上安装就版本的Firefox,此处以version 46为例子: 1.删除已存在的Firefox, On CentOS/RHEL # yum remove firefox On Ubun ...
- tp框架中的一些疑点知识-8
NaN是Number对象的一个属性, 表示一个特殊值, 表示不是一个 数字, 引用/赋值时, 要使用: Number.NaN 判断 一个值是不是 NaN, 用 isNaN() 函数, 它是一个js的全 ...
- 在Linux安装和使用LinuxBrew
简介 LinuxBrew是流行的Mac OS X的一个Linux叉自制包管理器. LinuxBrew是包管理软件,它能从源(在Debian / Ubuntu的如"易/ DEB",并 ...
- FAQ Flyway
https://flywaydb.org/documentation/faq What is the best strategy for dealing with hot fixes? You hav ...
- 【系列教程1】Gradle入门系列一:简介
Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言.近期,Gradle获得了极大的关注. 这篇文章是Gradle教程的第一篇,我们有两个目 ...
- Linux command: grep
How to use grep to match multiple strings in the same line? grep 'string1\|string2' filename grep -E ...
- IE8下面parseInt('08')、parseInt('09')会转成0
例子: <html> <body> <script type="text/javascript"> for(var i=1;i<=20;i ...