512 lines
23 KiB
C#
512 lines
23 KiB
C#
using HL_FristAidPlatform_Help;
|
||
using HL_FristAidPlatform_IDataBase;
|
||
using HL_FristAidPlatform_Models;
|
||
using SqlSugar;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Text;
|
||
|
||
namespace HL_FristAidPlatform_DataBase
|
||
{
|
||
/// <summary>
|
||
/// 院前部分信息表
|
||
/// </summary>
|
||
public class T_Service_ChestPain_PrehospitalDB : BaseDB, IT_Service_ChestPain_Prehospital
|
||
{
|
||
public SqlSugarClient db = GetClient();
|
||
|
||
/// <summary>
|
||
/// 增加一条数据
|
||
/// </summary>
|
||
public T_Service_ChestPain_Prehospital Add(T_Service_ChestPain_Prehospital model)
|
||
{
|
||
return db.Insertable(model).ExecuteReturnEntity();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新一条数据
|
||
/// </summary>
|
||
public bool Update(T_Service_ChestPain_Prehospital model)
|
||
{
|
||
return db.Updateable(model).ExecuteCommand() == 0 ? false : true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除一条数据
|
||
/// </summary>
|
||
public bool Delete(long ID)
|
||
{
|
||
return db.Deleteable<T_Service_ChestPain_Prehospital>(it => it.ID == ID).ExecuteCommand() == 0 ? false : true; ;
|
||
}
|
||
|
||
public T_Service_ChestPain_Prehospital GetByGuid(string patientguid)
|
||
{
|
||
return db.Queryable<T_Service_ChestPain_Prehospital>().Where(it => (it.PatientGuid == patientguid)).First();
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获得数据列表
|
||
/// </summary>
|
||
public TableModel<T_Service_ChestPain_Prehospital> GetPageList(int pageIndex, int pageSize)
|
||
{
|
||
int total = 0;
|
||
List<T_Service_ChestPain_Prehospital> data = db.Queryable<T_Service_ChestPain_Prehospital>().Where(it => it.DeleteFlag == 0).ToPageList(pageIndex, pageSize, ref total);
|
||
TableModel<T_Service_ChestPain_Prehospital> t = new TableModel<T_Service_ChestPain_Prehospital>();
|
||
t.Code = 0;
|
||
t.PageCount = data.Count;
|
||
t.TotalNumber = total;
|
||
t.Data = data;
|
||
t.Msg = "成功";
|
||
return t;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获得前几行数据
|
||
/// </summary>
|
||
public T_Service_ChestPain_Prehospital Get(long ID)
|
||
{
|
||
return db.Queryable<T_Service_ChestPain_Prehospital>().First(it => it.ID == ID);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据日期获取数据
|
||
/// </summary>
|
||
public TableModel<Patient_Prehospital> GetWhere(DateTime startTime, DateTime endTime)
|
||
{
|
||
TableModel<Patient_Prehospital> t = new TableModel<Patient_Prehospital>();
|
||
string sql = "select a.Name,convert(varchar(7),a.CreationDate,120) as CreationDate,b.CP_Diagnosis_Code as Content from T_Service_Patient a join T_Service_ChestPain_TreatmentInfo b on a.GUID=b.PatientGuid where a.SystemModuleID=2 and a.DeleteFlag=0 and a.CreationDate between '" + startTime + "' and '" + endTime + "' order by convert(varchar(7),a.CreationDate,120) ";
|
||
List<Patient_Prehospital> data = db.Ado.SqlQuery<Patient_Prehospital>(sql);
|
||
t.Code = 0;
|
||
t.PageCount = data.Count;
|
||
t.TotalNumber = data.Count;
|
||
t.Data = data;
|
||
t.Msg = "成功";
|
||
return t;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 根据患者编号(GUID)+所属报表类型 获取数据信息
|
||
/// </summary>
|
||
/// <param name="patientGuid">病人编号(GUID)</param>
|
||
/// <returns></returns>
|
||
public TableModel<T_Service_ChestPain_Prehospital> GetByPatientGuid(string patientGuid)
|
||
{
|
||
TableModel<T_Service_ChestPain_Prehospital> t = new TableModel<T_Service_ChestPain_Prehospital>();
|
||
|
||
var listMode = db.Queryable<T_Service_ChestPain_Prehospital>().Where(it => it.PatientGuid == patientGuid && it.DeleteFlag == 0)
|
||
.Select(it => new T_Service_ChestPain_Prehospital
|
||
{
|
||
ID = it.ID,
|
||
GUID = it.GUID,
|
||
PatientGuid = it.PatientGuid,
|
||
Attack_Time = it.Attack_Time,
|
||
TimeOfOnset = it.TimeOfOnset,
|
||
OnsetTimeInterval = it.OnsetTimeInterval,
|
||
IsCallHelp = it.IsCallHelp,
|
||
CallHelpTime = it.CallHelpTime,
|
||
CallHelpWay = it.CallHelpWay,
|
||
PreliminaryDiagnosis = it.PreliminaryDiagnosis,
|
||
PreliminaryDiagnosis_Text = it.PreliminaryDiagnosis_Text,
|
||
PreliminaryDiagnosisDoctorID = it.PreliminaryDiagnosisDoctorID,
|
||
PreliminaryDiagnosisDoctorName = it.PreliminaryDiagnosisDoctorName,
|
||
ConditionAssessment = it.ConditionAssessment,
|
||
ConditionAssessmentText = it.ConditionAssessmentText,
|
||
Is_Persistent = it.Is_Persistent,
|
||
Is_Intermittent = it.Is_Intermittent,
|
||
Is_Laxation = it.Is_Laxation,
|
||
Is_Bellyache = it.Is_Bellyache,
|
||
Is_Dyspnea = it.Is_Dyspnea,
|
||
Is_Shock = it.Is_Shock,
|
||
Is_Heart_Attack = it.Is_Heart_Attack,
|
||
Is_Malignant_Arrhythmia = it.Is_Malignant_Arrhythmia,
|
||
Is_Cpr = it.Is_Cpr,
|
||
Is_Hemorrhage = it.Is_Hemorrhage,
|
||
Is_Other = it.Is_Other,
|
||
HospitalMode = it.HospitalMode,
|
||
Vehicleout_Unit = it.Vehicleout_Unit,
|
||
Vehicleout_Unit_Name = it.Vehicleout_Unit_Name,
|
||
InHospital_Admission_Time = it.InHospital_Admission_Time,
|
||
Is_Bypass_Emergency = it.Is_Bypass_Emergency,
|
||
Nonstop = it.Nonstop,
|
||
Nonstop_Time = it.Nonstop_Time,
|
||
Leave_Emergency_Time = it.Leave_Emergency_Time,
|
||
Is_Bypass_CCU = it.Is_Bypass_CCU,
|
||
Arrive_CCU_Time = it.Arrive_CCU_Time,
|
||
IsNetworkCollaboration = it.IsNetworkCollaboration,
|
||
Transport_Hospital_Name = it.Transport_Hospital_Name,
|
||
Transport_Department_Name = it.Transport_Department_Name,
|
||
Transport_HospitalIn_Visit_Time = it.Transport_HospitalIn_Visit_Time,
|
||
Transfer_Time = it.Transfer_Time,
|
||
Ambulance_Arrived_Time = it.Ambulance_Arrived_Time,
|
||
Leave_Outhospital_Time = it.Leave_Outhospital_Time,
|
||
Disease_Department = it.Disease_Department,
|
||
Consultation_Time = it.Consultation_Time,
|
||
Leave_Department_Time = it.Leave_Department_Time,
|
||
Other_Hospital_Name = it.Other_Hospital_Name,
|
||
NonAcs_CCP = it.NonAcs_CCP,
|
||
NonAcs_CCPText = it.NonAcs_CCPText,
|
||
Arrhythmia = it.Arrhythmia,
|
||
DCM = it.DCM,
|
||
ICM = it.ICM,
|
||
HCM = it.HCM,
|
||
Carditis = it.Carditis,
|
||
CHD = it.CHD,
|
||
AVHD = it.AVHD,
|
||
OMI = it.OMI,
|
||
AP = it.AP,
|
||
Palpitate = it.Palpitate,
|
||
AF = it.AF,
|
||
Hypertension = it.Hypertension,
|
||
HF = it.HF,
|
||
Atrialflutter = it.Atrialflutter,
|
||
VPC = it.VPC,
|
||
APB = it.APB,
|
||
ST = it.ST,
|
||
Other_NonAcs_CCP = it.Other_NonAcs_CCP,
|
||
Other_NonAcs_CCPText = it.Other_NonAcs_CCPText,
|
||
RD = it.RD,
|
||
DSD = it.DSD,
|
||
NSD = it.NSD,
|
||
PD = it.PD,
|
||
MD = it.MD,
|
||
SSD = it.SSD,
|
||
Other = it.Other,
|
||
Handle_Way = it.Handle_Way,
|
||
Handle_Time = it.Handle_Time,
|
||
Patient_Outcome = it.Patient_Outcome,
|
||
Handle_Doctor_Name = it.Handle_Doctor_Name,
|
||
DeleteFlag = it.DeleteFlag,
|
||
CreationDate = it.CreationDate,
|
||
CreatorID = it.CreatorID,
|
||
Creator = it.Creator,
|
||
EditTime = it.EditTime,
|
||
EditorID = it.EditorID,
|
||
Editor = it.Editor,
|
||
Emergency_Log = it.Emergency_Log,
|
||
}).OrderBy(it => it.ID, OrderByType.Desc).ToList();
|
||
|
||
t.Code = 0;
|
||
t.TotalNumber = listMode.Count;
|
||
t.Data = listMode;
|
||
t.Msg = "成功";
|
||
return t;
|
||
}
|
||
|
||
#region
|
||
//STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例
|
||
public TableModel<KeyValue> GetKeyValueByReport(DateTime startTime, DateTime endTime, string where)
|
||
{
|
||
string sql = "select substring(CONVERT(varchar(10), a.CreationDate,120),0,8) as [key],datediff(N,e.RecordingTime,d.ECG_Diagnose_Time)as value from T_Service_Patient a join T_Service_ChestPain_Prehospital b on a.GUID=b.PatientGuid " +
|
||
" left join T_Base_PreliminaryDiagnosis c on b.PreliminaryDiagnosis = c.ID left join T_Service_ChestPain_FirstMedicalReception d on a.GUID = d.PatientGuid" +
|
||
" left join T_Service_ChestPain_PatientsTimeAxis e on a.GUID = e.PatientGuid where a.SystemModuleID = 2 and c.Content = 'STEMI' and a.DeleteFlag = 0 and b.DeleteFlag = 0" +
|
||
" and d.DeleteFlag = 0 and a.CreationDate between '" + startTime + "' and '" + endTime + "' and e.TimeAxisID = " + where + "";
|
||
List<KeyValue> data = db.Ado.SqlQuery<KeyValue>(sql);
|
||
TableModel<KeyValue> t = new TableModel<KeyValue>();
|
||
t.Code = 0;
|
||
t.PageCount = data.Count;
|
||
t.TotalNumber = data.Count;
|
||
t.Data = data;
|
||
t.Msg = "成功";
|
||
return t;
|
||
}
|
||
|
||
/// <summary>
|
||
/// STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例
|
||
/// </summary>
|
||
public ReprotModel GetIndexWhere(DateTime startTime, DateTime endTime, string mcTimeAxisID, string eCGTimeAxisID, string screen)
|
||
{
|
||
DataSet spResult = db.Ado.GetDataSetAll("exec ChestPain_Report01 @StartTime,@EndTime,@MCTimeAxisID,@ECGTimeAxisID,@Screen",
|
||
new
|
||
{
|
||
StartTime = startTime.ToShortDateString() + " 00:00",
|
||
EndTime = endTime.ToShortDateString() + " 23:59",
|
||
MCTimeAxisID = mcTimeAxisID,
|
||
ECGTimeAxisID = eCGTimeAxisID,
|
||
Screen = screen
|
||
});
|
||
ReprotModel JsonResult = dataSetToJosn(spResult);
|
||
return JsonResult;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 120急救或者转运患者ECG远程传输比例
|
||
/// </summary>
|
||
public ECGTransmissionReportModel GetECGTransmissionReport(DateTime startTime, DateTime endTime, string screen)
|
||
{
|
||
DataSet spResult = db.Ado.GetDataSetAll("exec ChestPain_Report02 @StartTime,@EndTime,@Screen",
|
||
new
|
||
{
|
||
StartTime = startTime.ToShortDateString() + " 00:00",
|
||
EndTime = endTime.ToShortDateString() + " 23:59",
|
||
Screen = screen
|
||
});
|
||
ECGTransmissionReportModel JsonResult = dataSetToECGTransmissionReport(spResult);
|
||
return JsonResult;
|
||
}
|
||
|
||
/// <summary>
|
||
/// STEMI患者首份ECG(远程传输或院内)至心电图确诊时间;≤10分钟比例
|
||
/// </summary>
|
||
public ReprotModel GetECGDiagnosisReport(DateTime startTime, DateTime endTime)
|
||
{
|
||
DataSet spResult = db.Ado.GetDataSetAll("exec ChestPain_Report03 @StartTime,@EndTime",
|
||
new
|
||
{
|
||
StartTime = startTime.ToShortDateString() + " 00:00",
|
||
EndTime = endTime.ToShortDateString() + " 23:59",
|
||
});
|
||
ReprotModel JsonResult = dataSetToJosn(spResult);
|
||
return JsonResult;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// STEMI患者首次医疗接触至双重抗血小板治疗比例、时间;≤10分钟比例
|
||
/// </summary>
|
||
public ReprotModel GetDoubleResistanceReport(DateTime startTime, DateTime endTime)
|
||
{
|
||
DataSet spResult = db.Ado.GetDataSetAll("exec ChestPain_Report04 @StartTime,@EndTime",
|
||
new
|
||
{
|
||
StartTime = startTime.ToShortDateString() + " 00:00",
|
||
EndTime = endTime.ToShortDateString() + " 23:59",
|
||
});
|
||
ReprotModel JsonResult = dataSetToJosn(spResult);
|
||
return JsonResult;
|
||
}
|
||
/// <summary>
|
||
/// 通用获取表报接口
|
||
/// </summary>
|
||
/// <param name="startTime"></param>
|
||
/// <param name="endTime"></param>
|
||
/// <returns></returns>
|
||
public ReprotModel GetReport(DateTime startTime, DateTime endTime, string reportName)
|
||
{
|
||
DataSet spResult = db.Ado.GetDataSetAll("exec " + reportName + " @StartTime,@EndTime",
|
||
new
|
||
{
|
||
StartTime = startTime.ToShortDateString() + " 00:00",
|
||
EndTime = endTime.ToShortDateString() + " 23:59",
|
||
});
|
||
ReprotModel JsonResult = dataSetToJosn(spResult);
|
||
return JsonResult;
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 来院方式统
|
||
/// </summary>
|
||
/// <param name="hosptialGuid"></param>
|
||
/// <param name="startTime"></param>
|
||
/// <param name="endTime"></param>
|
||
/// <returns></returns>
|
||
public List<MassiveDataStatisticsModel> GetChestPainToHospitalWay(string hosptialGuid, string startTime, string endTime)
|
||
{
|
||
List<MassiveDataStatisticsModel> list = new List<MassiveDataStatisticsModel>();
|
||
List<MassiveDataStatisticsModel> lst = new List<MassiveDataStatisticsModel>();
|
||
lst = db.Queryable<T_Service_Patient, T_Service_ChestPain_FirstAIDInfo>((a, b) => a.GUID == b.PatientGuid)
|
||
.Where((a, b) => a.HospitalGuid == hosptialGuid && a.SystemModuleID == 2 && a.DeleteFlag == 0)
|
||
.WhereIF(!SqlFunc.IsNullOrEmpty(startTime), (a, b) => a.CreationDate >= SqlFunc.ToDate(startTime))
|
||
.WhereIF(!SqlFunc.IsNullOrEmpty(endTime), (a, b) => a.CreationDate <= SqlFunc.ToDate(endTime).AddDays(1))
|
||
.Select((a, b) => new MassiveDataStatisticsModel()
|
||
{
|
||
name = b.CW_Coming_Way_Code
|
||
}).ToList();
|
||
MassiveDataStatisticsModel m1 = new MassiveDataStatisticsModel();
|
||
m1.name = "120来院";
|
||
MassiveDataStatisticsModel m2 = new MassiveDataStatisticsModel();
|
||
m2.name = "转院";
|
||
MassiveDataStatisticsModel m3 = new MassiveDataStatisticsModel();
|
||
m3.name = "自行来院";
|
||
MassiveDataStatisticsModel m4 = new MassiveDataStatisticsModel();
|
||
m4.name = "院内发病";
|
||
//CW_Coming_Way_Code 1:呼叫(120或其他)出车 2:转院(包含任何机构) 3:自行来院 4:院内发病
|
||
|
||
if (lst.Count > 0)
|
||
{
|
||
m1.value = lst.Where(i => i.name == "1").Count();
|
||
m2.value = lst.Where(i => i.name == "2").Count();
|
||
m3.value = lst.Where(i => i.name == "3").Count();
|
||
m4.value = lst.Where(i => i.name == "4").Count();
|
||
}
|
||
list.Add(m1);
|
||
list.Add(m2);
|
||
list.Add(m3);
|
||
list.Add(m4);
|
||
return list;
|
||
}
|
||
|
||
#region 帮助类方法
|
||
public ReprotModel dataSetToJosn(DataSet ds)
|
||
{
|
||
List<ReprotMonth> reprotMonthList = new List<ReprotMonth>();
|
||
List<ReportDetails> reportDetailsList = new List<ReportDetails>();
|
||
ReprotModel reprotModels = new ReprotModel();
|
||
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow item in ds.Tables[0].Rows)
|
||
{
|
||
ReprotMonth reprotMonth = new ReprotMonth();
|
||
reprotMonth.月份 = item[ds.Tables[0].Columns[0].ColumnName] + "";
|
||
reprotMonth.平均时间 = Convert.ToDouble(item[ds.Tables[0].Columns[1].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[1].ColumnName]);
|
||
reprotMonth.最小值 = Convert.ToDouble(item[ds.Tables[0].Columns[2].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[2].ColumnName]);
|
||
reprotMonth.最大值 = Convert.ToDouble(item[ds.Tables[0].Columns[3].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[3].ColumnName]);
|
||
reprotMonth.总数 = Convert.ToDouble(item[ds.Tables[0].Columns[4].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[4].ColumnName]);
|
||
reprotMonth.总时间 = Convert.ToDouble(item[ds.Tables[0].Columns[5].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[5].ColumnName]);
|
||
reprotMonth.百分比 = Convert.ToDouble(item[ds.Tables[0].Columns[6].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[6].ColumnName]);
|
||
reprotMonth.合格总数 = Convert.ToDouble(item[ds.Tables[0].Columns[7].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[7].ColumnName]);
|
||
reprotMonthList.Add(reprotMonth);
|
||
}
|
||
}
|
||
if (ds.Tables[1].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow item in ds.Tables[1].Rows)
|
||
{
|
||
ReportDetails reportDetails = new ReportDetails();
|
||
reportDetails.月份 = item[ds.Tables[1].Columns[0].ColumnName] + "";
|
||
reportDetails.姓名 = item[ds.Tables[1].Columns[1].ColumnName] + "";
|
||
reportDetails.开始时间 = item[ds.Tables[1].Columns[2].ColumnName] + "";
|
||
reportDetails.结束时间 = item[ds.Tables[1].Columns[3].ColumnName] + "";
|
||
//reportDetails.差值 = Convert.ToDouble(item[ds.Tables[1].Columns[4].ColumnName] + "" == "" ? 0 : item[ds.Tables[1].Columns[4].ColumnName]);
|
||
if (!string.IsNullOrEmpty(reportDetails.开始时间 + "") && !string.IsNullOrEmpty(reportDetails.结束时间 + ""))
|
||
{
|
||
DateTime dt1 = Convert.ToDateTime(reportDetails.开始时间);
|
||
DateTime dt2 = Convert.ToDateTime(reportDetails.结束时间);
|
||
TimeSpan ts = dt2.Subtract(dt1);
|
||
reportDetails.差值 = ts.Days * 1440 + ts.Hours * 60 + ts.Minutes * 1;
|
||
}
|
||
reportDetails.参考时间 = Convert.ToDouble(item[ds.Tables[1].Columns[5].ColumnName] + "" == "" ? 0 : item[ds.Tables[1].Columns[5].ColumnName]);
|
||
reportDetailsList.Add(reportDetails);
|
||
}
|
||
}
|
||
reprotModels.reprotMonths = reprotMonthList;
|
||
reprotModels.reportDetails = reportDetailsList;
|
||
return reprotModels;
|
||
}
|
||
|
||
public ECGTransmissionReportModel dataSetToECGTransmissionReport(DataSet ds)
|
||
{
|
||
List<ECGTransmissionMonth> reprotMonthList = new List<ECGTransmissionMonth>();
|
||
List<ECGTransmissionDetails> reportDetailsList = new List<ECGTransmissionDetails>();
|
||
ECGTransmissionReportModel reprotModels = new ECGTransmissionReportModel();
|
||
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow item in ds.Tables[0].Rows)
|
||
{
|
||
ECGTransmissionMonth reprotMonth = new ECGTransmissionMonth();
|
||
reprotMonth.月份 = item[ds.Tables[0].Columns[0].ColumnName] + "";
|
||
reprotMonth.远程传输比例 = Convert.ToDouble(item[ds.Tables[0].Columns[1].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[1].ColumnName]);
|
||
reprotMonth.远程传输 = Convert.ToInt32(item[ds.Tables[0].Columns[2].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[2].ColumnName]);
|
||
reprotMonth.总数 = Convert.ToInt32(item[ds.Tables[0].Columns[3].ColumnName] + "" == "" ? 0 : item[ds.Tables[0].Columns[3].ColumnName]);
|
||
reprotMonthList.Add(reprotMonth);
|
||
}
|
||
}
|
||
if (ds.Tables[1].Rows.Count > 0)
|
||
{
|
||
foreach (DataRow item in ds.Tables[1].Rows)
|
||
{
|
||
ECGTransmissionDetails reportDetails = new ECGTransmissionDetails();
|
||
reportDetails.月份 = item[ds.Tables[1].Columns[0].ColumnName] + "";
|
||
reportDetails.姓名 = item[ds.Tables[1].Columns[1].ColumnName] + "";
|
||
reportDetails.是否有效数据 = item[ds.Tables[1].Columns[2].ColumnName] + "";
|
||
reportDetailsList.Add(reportDetails);
|
||
}
|
||
}
|
||
reprotModels.eCGTransmissionMonths = reprotMonthList;
|
||
reprotModels.eCGTransmissionDetails = reportDetailsList;
|
||
return reprotModels;
|
||
}
|
||
|
||
/// <summary>
|
||
/// DataSet转换成Json格式
|
||
/// </summary>
|
||
/// <paramname="ds">DataSet</param>
|
||
///<returns></returns>
|
||
public static string DatasetToJson(DataSet ds, int total = -1)
|
||
{
|
||
StringBuilder json = new StringBuilder();
|
||
foreach (DataTable dt in ds.Tables)
|
||
{
|
||
//{"total":5,"rows":[
|
||
json.Append("{\"total\":");
|
||
if (total == -1)
|
||
{
|
||
json.Append(dt.Rows.Count);
|
||
}
|
||
else
|
||
{
|
||
json.Append(total);
|
||
}
|
||
json.Append(",\"rows\":[");
|
||
json.Append(DataTableToJson(dt));
|
||
json.Append("]}");
|
||
}
|
||
return json.ToString();
|
||
}
|
||
/// <summary>
|
||
/// dataTable转换成Json格式
|
||
/// </summary>
|
||
/// <paramname="dt"></param>
|
||
///<returns></returns>
|
||
public static string DataTableToJson(DataTable dt)
|
||
{
|
||
StringBuilder jsonBuilder = new StringBuilder();
|
||
for (int i = 0; i < dt.Rows.Count; i++)
|
||
{
|
||
jsonBuilder.Append("{");
|
||
for (int j = 0; j < dt.Columns.Count; j++)
|
||
{
|
||
jsonBuilder.Append("\"");
|
||
jsonBuilder.Append(dt.Columns[j].ColumnName);
|
||
jsonBuilder.Append("\":\"");
|
||
jsonBuilder.Append(dt.Rows[i][j].ToString());
|
||
jsonBuilder.Append("\",");
|
||
}
|
||
if (dt.Columns.Count > 0)
|
||
{
|
||
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
|
||
}
|
||
jsonBuilder.Append("},");
|
||
}
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
|
||
}
|
||
return jsonBuilder.ToString();
|
||
}
|
||
/// <summary>
|
||
/// 参数转换为in条件字符串
|
||
/// </summary>
|
||
/// <param name="lst"></param>
|
||
/// <returns></returns>
|
||
public static string ParseToSQLIn(string lst)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
string[] array = lst.Split(',');
|
||
//sb.Append("'0'");
|
||
foreach (string item in array)
|
||
{
|
||
sb.Append(",'");
|
||
sb.Append(item);
|
||
sb.Append("'");
|
||
}
|
||
if (sb.Length > 0)
|
||
{
|
||
sb.Remove(0, 1);
|
||
}
|
||
return sb.ToString();
|
||
}
|
||
#endregion
|
||
}
|
||
} |