C# 当通讯数据比较多,需要分组发送,对DataSetToJson的重载
2012-01-10 08:50
489 查看
//数据集转为JSON数组主表专用 iMaxCount-最大通讯条数 iCom-第几次通讯 iLast--最后一次通讯条数,不是最后一次通讯传入0
public static string DataSetToJson(DataSet ds, string tblname,int iMaxCount,int iCom,int iLast)
{
string json = string.Empty;
try
{
if (ds.Tables.Count == 0)
throw new Exception("DataSet中Tables为0");
json = "{";
for (int i = 0; i < ds.Tables.Count; i++)
{
json += "'" + tblname + "'" + ":[";
//for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
if (iLast == 0) //不是最后一次通讯的话这样处理
{
for (int j = iMaxCount * iCom; j <= (iCom + 1) * iMaxCount - 1; j++)
{
json += "{";
for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
{
json += "'" + ds.Tables[i].Columns[k].ColumnName + "'" + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'";
if (k != ds.Tables[i].Columns.Count - 1)
json += ",";
}
json += "}";
if (j != ds.Tables[i].Rows.Count - 1)
json += ",";
}
}
else //如果是最后一次通讯 则islast里面存的是剩余的未通讯的条数
{
for (int j = iMaxCount * iCom; j <= iCom * iMaxCount - 1 + iLast; j++)
{
json += "{";
for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
{
json += "'" + ds.Tables[i].Columns[k].ColumnName + "'" + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'";
if (k != ds.Tables[i].Columns.Count - 1)
json += ",";
}
json += "}";
if (j != ds.Tables[i].Rows.Count - 1)
json += ",";
}
}
json += "]";
if (i != ds.Tables.Count - 1)
json += ",";
}
json += "}";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return json;
}
public static string DataSetToJson(DataSet ds, string tblname,int iMaxCount,int iCom,int iLast)
{
string json = string.Empty;
try
{
if (ds.Tables.Count == 0)
throw new Exception("DataSet中Tables为0");
json = "{";
for (int i = 0; i < ds.Tables.Count; i++)
{
json += "'" + tblname + "'" + ":[";
//for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
if (iLast == 0) //不是最后一次通讯的话这样处理
{
for (int j = iMaxCount * iCom; j <= (iCom + 1) * iMaxCount - 1; j++)
{
json += "{";
for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
{
json += "'" + ds.Tables[i].Columns[k].ColumnName + "'" + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'";
if (k != ds.Tables[i].Columns.Count - 1)
json += ",";
}
json += "}";
if (j != ds.Tables[i].Rows.Count - 1)
json += ",";
}
}
else //如果是最后一次通讯 则islast里面存的是剩余的未通讯的条数
{
for (int j = iMaxCount * iCom; j <= iCom * iMaxCount - 1 + iLast; j++)
{
json += "{";
for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
{
json += "'" + ds.Tables[i].Columns[k].ColumnName + "'" + ":'" + ds.Tables[i].Rows[j][k].ToString() + "'";
if (k != ds.Tables[i].Columns.Count - 1)
json += ",";
}
json += "}";
if (j != ds.Tables[i].Rows.Count - 1)
json += ",";
}
}
json += "]";
if (i != ds.Tables.Count - 1)
json += ",";
}
json += "}";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return json;
}
相关文章推荐
- c#中大数据量(16M)的DataSet压缩方法比较
- 需要用C#http协议发送和接收数据
- MVC LinqToSql Json DbComparisonExpression 需要具有可比较类型的参数。
- C# Scoket异步通讯实现(发送数据、接收数据)
- C# 中UDP通信时 发送数据并需要事先Bind IP地址
- C#通讯编程入门--串口数据接收发送实例
- 如何通过Java的Web服务器把DataSet或DataTable数据通过json格式传回给C#的客户端
- c# Json数据转换成DataSet
- C# 当待通讯数据较多且为主从表,拼为多个JSON数组的方法
- C#将DataSet或DataTable转换成Json格式数据传递到前台JS脚本
- C# usb Hid 访问上位机USB通讯实例 实现设备在线或者离线和发送接收数据通讯功能
- c#中 put方式发送Json数据、post方式、delete方式、get方式、
- C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据
- c#中把json数据转到dataset中的方法
- c# 模拟post发送 multipart/form-data,json格式数据
- 用UDP进行广播后绑定发送Json数据进行通讯
- C#实现用DataSet来更新数据库
- C# 操作JSON字符串用于与网页中的返回数据进行互动
- C#遍历DataSet中数据的几种方法总结
- python 发送带请求头的json数据