解决: C# 多个dataTable添加到 dataSet中

项目中用到 查询多个结果集

此处调用多个sql语句 返回多个dataTable 后进行封装成一个dataSet ,然后返回

先定义 多个dataTable 和一个返回dataSet

            DataSet ds = new DataSet();DataTable dt0 = new DataTable();DataTable dt1 = new DataTable();DataTable dt2 = new DataTable();DataTable dt3 = new DataTable();

然后给每个dataTable 起个名字

            dt1.TableName = "Table0";dt2.TableName = "Table1";dt3.TableName = "Table2";

最后调用dataTable.Copy方法

            ds.Tables.Add(dt1.Copy());ds.Tables.Add(dt2.Copy());ds.Tables.Add(dt3.Copy());

最后返回dataSet

完整代码

/// <summary>/// Hwq 2022年4月18日17:11:40/// 查询 围栏统计详情/// </summary>/// <param name="fSqlConnectString">IOT数据库链接</param>/// <param name="sqlConnectString">AnalysisData数据库链接</param>/// <param name="fAgentGUID">部门fguid</param>/// <param name="fStartTime">开始时间</param>/// <param name="fEndTime">结束时间</param>/// <param name="fSelectType">类型:1:按日查询 2:按月查询 3:按年查询</param>/// <returns></returns>public object SQueryFenceStatisticsDetails(string fSqlConnectString, string sqlConnectString, Guid fAgentGUID, DateTime fStartTime, DateTime fEndTime, int fSelectType){DReport dReport = new DReport();DataSet ds = new DataSet();DataTable dt0 = new DataTable();DataTable dt1 = new DataTable();DataTable dt2 = new DataTable();DataTable dt3 = new DataTable();// 按日查询   直接传值  // 按月查询   开始时间 月初  //            结束时间 月末if (fSelectType == 1){// 按月 //  重新定义时间逻辑.......fStartTime = fStartTime.AddDays(1 - fStartTime.Day); //本月月初fEndTime = fEndTime.AddDays(1 - fEndTime.Day).AddMonths(1).AddDays(-1); //本月月末}// 1.先根据 部门fguid  查询 部门所有车辆 fguid  ,拼接一条字符串 用逗号间隔string fVehicleGUIDs = "";dt0 = dReport.DQueryFVehicleGUIDsByFAgentGUID(fSqlConnectString, fAgentGUID);if (dt0 != null && dt0.Rows.Count > 0){foreach (DataRow dr in dt0.Rows){if (string.IsNullOrEmpty(fVehicleGUIDs)){fVehicleGUIDs += dr["FVehicleGUID"].ToString();}else{fVehicleGUIDs += "," + dr["FVehicleGUID"].ToString();}}}else{// 部门下面没有车辆,返回空return ds;}// 2.在 根据车俩fguid  查询 “满洲里/阿拉山口/二连浩特/霍尔果斯” 四个出境关口 次数统计(第一个饼状图)// 3.再 根据车辆fguid  查询 统计所有车辆始发站次数  和  占比 (第二个饼状图)// 4.在 根据车辆fguid  查询 每个围栏停留时长if (dReport.DQueryCountFenceStatusticByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs)) != null){dt1 = dReport.DQueryCountFenceStatusticByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs));}if (dReport.DQueryFStartCityPointByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs)) != null){dt2 = dReport.DQueryFStartCityPointByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs));}if (dReport.DQueryFenceFStopDurationByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs)) != null){dt3 = dReport.DQueryFenceFStopDurationByFVehicleGUIDs(sqlConnectString, fStartTime, fEndTime, General.Instance.GetStrArray2StrIn(fVehicleGUIDs));}// 5.合并dataTable , 返回 dataSet dt1.TableName = "Table0";dt2.TableName = "Table1";dt3.TableName = "Table2";ds.Tables.Add(dt1.Copy());ds.Tables.Add(dt2.Copy());ds.Tables.Add(dt3.Copy());return ds;}

解决: C# 多个dataTable添加到 dataSet中相关推荐

  1. 合并多个DataTable及将DataTable添加到DataSet的方法

    Merge方法是将两个结构相似的datatable合并成一个datatable: // 创建表1 DataTable dt1 = new  DataTable(); // 添加数据 dt1.Colum ...

  2. 解决for循环将字典添加到列表中出现覆盖前面数据的问题

    错误代码: 代码如图,我们通过for循环输入了3次不同的用户名和密码,并且添加到 user_list 的列表中,但是最终 user_list 打印了三次相同的数据 # -*- coding: utf- ...

  3. 解决 | VS 2015右键项目添加新项中没有web窗体等选项

    刚装完的VS2015,打开网站之后右键项目添加新项时,没有web窗体,SQL Server数据库等选项,如: 解决方法:工具->扩展和更新: 更新安装ASP.NET 工具(下图两个都装): 更新 ...

  4. sql 解析字符串添加到临时表中 sql存储过程in 参数输入

    sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneCol ...

  5. 将勾选数据从dataset中筛选出来

    为什么80%的码农都做不了架构师?>>>    方案一: DataSet dsTemp = new DataSet();dsTemp = dsDt.Clone();DataRow[] ...

  6. 将多个DataTable添加到指定的DataSet中

    将多个DataTable添加到指定的DataSet中 如何将多个DataTable添加到指定的DataSet中 事件起因:从数据库中,查询多个dataTable,现在想一下子返回多个table,所以就 ...

  7. VB.NET学习笔记:操作数据集DataSet中DataTable数据行(DataRow)——新增、插入、复制、克隆

    通常我们都知道可以使用OleDbDataAdapter对象的Fill方法从数据源检索数据并填充DataSet 中的DataTable,其实我们也可以人工为DataTable添加DataRow. 一.R ...

  8. DataTable添加列和行的三种方法

    JRoger 原文 #region 方法一: DataTable tblDatas =new DataTable("Datas"); DataColumn dc =null; dc ...

  9. java同名变量在list中添加两次_快速解决List集合add元素,添加多个对象出现重复的问题...

    首先我们在new 一个对象的时候,对象的id是唯一确定的:将对象add入list中时,放入list中的其实是对象的引用 :而每次循环只是简单的set 对象的属性,set新的属性值,而add进list中 ...

最新文章

  1. 网络安全从事工作分类_那么,您想从事安全工作吗?
  2. php chilkat.certstore,angularjs实现冒泡排序算法的可视化
  3. 计算机程序中断方式有几种,奥鹏离线作业计算机组成原理一、简答题1、请说明程序查询方式与中断方式各自的特点.2、提高存储器速度可采用哪些措施,请说出...
  4. 两个byte[]拼接
  5. linux setsockopt函数
  6. Docker的一些理解(二)
  7. 呵呵,幸亏当初选了这个BLOG
  8. tengine php环境,CentOS 7搭建tengine+php+mariadb环境并安装discuz论坛
  9. java query dsl_java – QueryDsl – 具有字符串值的case表达式
  10. (最通俗易懂的)目标跟踪MOSSE、KCF
  11. 主板电源开关接口图解_全程图解:手把手教你主板各种插针接口与机箱(电源)的接法...
  12. E430 加装固态硬盘(SSD)参考
  13. 计算机网络为何使用分组交换,而不是电路交换
  14. 《东周列国志》第四十四回 叔詹据鼎抗晋侯 弦高假命犒秦军
  15. 为什么互联网需要采用去中心化结构?
  16. U²-Net:使用显著性物体检测来生成真实的铅笔肖像画
  17. C++基本功和 Design Pattern系列 Operator 下
  18. Spoon系列-概要
  19. 尚硅谷Nginx新版升级教程,带你轻松掌握高并发系统架构
  20. Leetcode解题(第974题)

热门文章

  1. 怎样在发信服务器上查网易邮件,网易企业邮箱:你知道如何查看网易企业邮箱邮件吗?...
  2. Windows SharePoint Services 中文网站模板
  3. 即时消费、无接触配送、商品溯源......被按暂停的“零售行业“,正被疫情再次重启...
  4. 现在你们叫我大佬,其实我在大学就是渣渣
  5. 内容正文选中一段文字分享到qq微博、新浪微博的代码
  6. 一文教会你Elasticsearch的更新操作(Updata与Updata by Query)
  7. Oracle-Oracle数据库的安装
  8. 记忆中最早的一部爱情电视剧《情魔》
  9. 无人机倾斜摄影测量技术应用于城市三维建模
  10. Linux安装Maven、POM及配置文件详解