资讯详情

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

解决: 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;
        }
   

标签: 二连浩特开关型传感器二连浩特滤波电容器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台