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(frmReportApp a_ReportApp) { //获取field信息 string sql = "select fieldid,fieldposx,fieldposy,SEMPosX,SEMPosY from IncAData group by fieldid,fieldposx,fieldposy"; 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"; 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" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + ".bmp"; Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString()), FieldPosX = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["FieldX"].ToString()), FieldPosY = Convert.ToInt32(a_ReportApp.OriginalPoint.Rows[i]["FieldY"].ToString()), FieldImage = imagePath }; DataRow[] drp = DTP.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString()); List listp = dbHelper.RowsToList(drp); foreach (Model.Particle modelp in listp) { //添加FeatureList信息 DataRow[] drs = DTS.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + " and particleid=" + modelp.ParticleId.ToString()); List flist = dbHelper.RowsToList(drs); modelp.FeatureList = flist; //添加ElementList信息 DataRow[] dre = DTE.Select("fieldid=" + a_ReportApp.OriginalPoint.Rows[i]["ID"].ToString() + " and XRayId=" + modelp.XrayId.ToString()); List elist = dbHelper.RowsToList(dre); modelp.ElementList = elist; } modelf.ParticleList = listp; Fields.Add(modelf); } //foreach (DataRow dr in DT.Rows) //{ // string imagePath = filePath + "Field" + dr["fieldid"].ToString() + ".bmp"; // Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(dr["fieldid"]), FieldPosX = Convert.ToInt32(dr["fieldposx"]), FieldPosY = Convert.ToInt32(dr["fieldposy"]), FieldImage = imagePath }; // DataRow[] drp = DTP.Select("fieldid=" + dr["fieldid"].ToString()); // List listp = dbHelper.RowsToList(drp); // foreach (Model.Particle modelp in listp) // { // //添加FeatureList信息 // DataRow[] drs = DTS.Select("fieldid=" + dr["fieldid"].ToString() + " and particleid=" + modelp.ParticleId.ToString()); // List flist = dbHelper.RowsToList(drs); // modelp.FeatureList = flist; // //添加ElementList信息 // DataRow[] dre = DTE.Select("fieldid=" + dr["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 group by FieldId"; 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; } } }