DataSetToJson 扩展方法
001 |
using System; |
002 |
using System.Collections.Generic; |
003 |
using System.Linq; |
004 |
using System.Text; |
005 |
using System.Data; |
006 |
|
007 |
namespace Common |
008 |
|
009 |
|
010 |
public static class JsonExtensions |
011 |
|
012 |
#region DataSetToJson 扩展方法 |
013 |
/// <summary> |
014 |
/// DataSetToJson 扩展方法 |
015 |
/// </summary> |
016 |
/// <param name="ds">要传入的DataSet</param> |
017 |
/// <param name="JsonName">Json的名称</param> |
018 |
/// <param name="ParName">Json字段名称</param> |
019 |
/// <returns>返回JSON字符串</returns> |
020 |
public static string DataSetToJson(this DataSet ds, string JsonName, string[] ParName) |
021 |
|
022 |
try |
023 |
|
024 |
if (ds == null |
025 |
|
026 |
return "DataSet Is Null ,So I Can't Do It To Json!" |
027 |
|
028 |
if (JsonName.Length < 1) |
029 |
|
030 |
return "You Set The Json Name Is Wrong!" |
031 |
|
032 |
if (ds.Tables[0].Columns.Count < ParName.Length) |
033 |
|
034 |
return "You Give The ParName Is Bigger Than DataSet Columns!" |
035 |
|
036 |
string josn = "{" + JsonName + ":[" |
037 |
string temp = "" |
038 |
for (int j = 0; j < ds.Tables[0].Rows.Count; j++) |
039 |
|
040 |
temp = temp + "{" |
041 |
for (int i = 0; i < ParName.Length; i++) |
042 |
|
043 |
temp += "" + ParName[i] + ":\'" + ds.Tables[0].Rows[j][ParName[i]] + "\'" |
044 |
if (i != ParName.Length - 1) |
045 |
|
046 |
temp = temp + "," |
047 |
|
048 |
|
049 |
if (j == ds.Tables[0].Rows.Count - 1) |
050 |
|
051 |
temp = temp + "}" |
052 |
|
053 |
else |
054 |
|
055 |
temp = temp + "}," |
056 |
|
057 |
|
058 |
josn = josn + temp + "]}" |
059 |
return josn; |
060 |
|
061 |
catch (Exception ex) |
062 |
|
063 |
return "Codeing is Error----" + ex.ToString(); |
064 |
|
065 |
|
066 |
|
067 |
|
068 |
#endregion |
069 |
|
070 |
#region DataSetToJson 扩展方法 |
071 |
/// <summary> |
072 |
/// DataSetToJson 扩展方法 |
073 |
/// </summary> |
074 |
/// <param name="ds">要传入的DataSet</param> |
075 |
/// <returns>返回JSON字符串<</returns> |
076 |
public static string DataSetToJson(this DataSet ds) |
077 |
|
078 |
try |
079 |
|
080 |
if (ds == null |
081 |
|
082 |
return "DataSet Is Null ,So I Can't Do It To Json!" |
083 |
|
084 |
string josn = "[" |
085 |
string temp = "" |
086 |
for (int j = 0; j < ds.Tables[0].Rows.Count; j++) |
087 |
|
088 |
temp = temp + "{" |
089 |
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) |
090 |
|
091 |
temp += "" + ds.Tables[0].Columns[i].ColumnName + ":\'" + ds.Tables[0].Rows[j][i] + "\'" |
092 |
if (i != ds.Tables[0].Columns.Count - 1) |
093 |
|
094 |
temp = temp + "," |
095 |
|
096 |
|
097 |
if (j == ds.Tables[0].Rows.Count - 1) |
098 |
|
099 |
temp = temp + "}" |
100 |
|
101 |
else |
102 |
|
103 |
temp = temp + "}," |
104 |
|
105 |
|
106 |
josn = josn + temp + "]" |
107 |
return josn; |
108 |
|
109 |
catch (Exception ex) |
110 |
|
111 |
return "Codeing is Error----" + ex.ToString(); |
112 |
|
113 |
|
114 |
|
115 |
#endregion |
116 |
|
117 |
} |
DataSetToJson 扩展方法的更多相关文章
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇
最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...
- C#的扩展方法解析
在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...
- 扩展方法(C#)
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 下面的示例为String添加 ...
- 扩展方法解决LinqToSql Contains超过2100行报错问题
1.扩展方法 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...
- C#扩展方法
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法就相当于一个马甲,给一个现有类套上,就可以为这个类添加其他方法了. 马甲必须定义为stati ...
- 枚举扩展方法获取枚举Description
枚举扩展方法 /// <summary> /// 扩展方法,获得枚举的Description /// </summary> /// <param name="v ...
- 扩展方法 1 简单的string扩展方法
这里是关于 String的简单扩展方法 (静态类 静态方法 this 类型 这里是string) static class Program { static void Main(string[] ar ...
随机推荐
- ZOJ1181 Word Amalgamation 字符串 排序查找
传送门:ZOJ1181 思路:自身排序来判断两个字符串拥有相同的字符. #include<cstdio> #include<cstdlib> #include<io ...
- slf4j+log4j在Java中实现日志记录
小Alan今天来跟大家聊聊开发中既简单又常用但必不可少的一样东西,那是什么呢?那就是日志记录,日志输出,日志保存. 后面就统一用日志记录四个字来形容啦. 日志记录是项目的开发中必不可少的一个环节,特别 ...
- Jquery字符串,数组(拷贝、删选、合并等),each循环,阻止冒泡,ajax出错,$.grep筛选,$.param序列化,$.when
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【机器学习实战】第7章 集成方法 ensemble method
第7章 集成方法 ensemble method 集成方法: ensemble method(元算法: meta algorithm) 概述 概念:是对其他算法进行组合的一种形式. 通俗来说: 当做重 ...
- Python程序练习4--模拟员工信息数据库操作
1.功能简介 此程序模拟员工信息数据库操作,按照语法输入指令即能实现员工信息的增.删.改.查功能. 2.实现方法 架构: 本程序采用python语言编写,关键在于指令的解析和执行:其中指令解析主要 ...
- 【转】话说C语言const用法
原文:话说C语言const用法 const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修 ...
- Tirp(状压DP)
Description 有一个N*N的迷宫,其中有一些宝藏,现在,小A要从入口(1,1)出发,到达出口(N,N),每次,小A只能从当前的格子走到上下左右四个格子,为了不空手而归,小A决定要拿到所以的宝 ...
- CountDownLatch、CyclicBarrier和 Semaphore比较
1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行: ...
- 12.21-Android WebService(基于KSOAP2)
KSOAP2_连接WebService *****我是小知识点******** Ksoap2提供了对soap序列化更好的支持.Ksoap2是一个轻量级的J2ME平台的实现框架,提供了soap协议消息的 ...
- <c:forEach items="${list}" var="tt" varStatus="status"> 的相关大小长度
<c:forEach items="${list}" var="tt" varStatus="status"> ${status ...