using OTSCommon.Model; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; namespace OTSIncAReportApp.DataOperation.DataAccess { public class FieldData { private SqlHelper dbHelper; //private frmReportApp m_Report=null; //测量文件地址 private string filePath; public FieldData(string path) { dbHelper = new SqlHelper("data source='" + path + "\\FIELD_FILES\\Inclusion.db'"); filePath = path + "\\FIELD_FILES\\"; } /// /// 获取SegmentList /// /// Feature /// public List GetFieldList() { //获取field信息 string sql = "select fieldid,fieldposx,fieldposy from field ";//select fieldid,fieldposx,fieldposy from field DataTable DT = dbHelper.ExecuteDataTable(sql, null); //获取Particle信息 //string sqlp = "select a.*,b.XrayData from IncAData a left join XRayData b on a.FieldId =b.FieldId and a.XrayId= b.XrayIndex"; string sqlp = "select * from IncAData "; DataTable DTP = dbHelper.ExecuteDataTable(sqlp, null); //获取Segment信息 string strs = @"select * from Segment "; DataTable DTS = dbHelper.ExecuteDataTable(strs, null); //获取Element信息 string sqle = @"select * from ElementChemistry "; DataTable DTE = dbHelper.ExecuteDataTable(sqle, null); List Fields = new List(); DirectoryInfo info = new DirectoryInfo(filePath); int count = info.GetFiles("*.bmp").Length; for (int i=0;i< count; i++) { string imagePath = filePath + "Field" + DT.Rows[i]["FieldId"].ToString() + ".bmp"; Field modelf = new Field() { FieldID = Convert.ToInt32(DT.Rows[i]["FieldId"].ToString()), FieldPosX = Convert.ToInt32(DT.Rows[i]["fieldposx"].ToString()), FieldPosY = Convert.ToInt32(DT.Rows[i]["fieldposy"].ToString()), FieldImage = imagePath }; DataRow[] drp = DTP.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString()); List listp = dbHelper.RowsToList(drp); foreach (Particle modelp in listp) { //添加FeatureList信息 DataRow[] drs = DTS.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString() + " and particleid=" + modelp.ParticleId.ToString()); List flist = dbHelper.RowsToList(drs); modelp.SegmentList = flist; //添加ElementList信息 DataRow[] dre = DTE.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString() + " and XRayId=" + modelp.XrayId.ToString()); List elist = dbHelper.RowsToList(dre); modelp.ElementList = elist; } modelf.ParticleList = listp; Fields.Add(modelf); } return Fields; } /// /// 获取SegmentDataTable /// /// Feature /// public DataTable GetGeneralInfo() { //存放查询数据的数据表 DataTable DT = null; string sql = "select * from GeneralInfo"; DT = dbHelper.ExecuteDataTable(sql, null); return DT; } /// /// 获取filed数量 /// /// Feature /// public int GetFiledCount() { //存放查询数据的数据表 DataTable DT = null; string sql = "select FieldId from Field"; DT = dbHelper.ExecuteDataTable(sql, null); return DT.Rows.Count; } /// /// 获取颗粒数量 /// /// Feature /// public int GetparticleCount() { //存放查询数据的数据表 DataTable DT = null; string sql = "select 1 from IncAData"; DT = dbHelper.ExecuteDataTable(sql, null); return DT.Rows.Count; } /// /// 获取所有的颗粒信息 /// /// public DataTable GetAllParticle_DataTable() { DataTable DT = null; string sql = "select * from IncAData where typeid > 9"; DT = dbHelper.ExecuteDataTable(sql, null); return DT; } /// /// 获取颗粒总面积 /// /// Feature /// public int GetparticleArea() { //存放查询数据的数据表 DataTable DT = null; string sql = "select sum(Area) from IncAData"; DT = dbHelper.ExecuteDataTable(sql, null); return DT.Rows.Count > 0 ? Convert.ToInt32(DT.Rows[0][0]) : 0; } } }