FieldData.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Drawing;
  5. using System.IO;
  6. namespace OTSIncAReportApp.DataOperation.DataAccess
  7. {
  8. public class FieldData
  9. {
  10. private SqlHelper dbHelper;
  11. private frmReportApp m_Report=new frmReportApp();
  12. //测量文件地址
  13. private string filePath;
  14. public FieldData(string path)
  15. {
  16. dbHelper = new SqlHelper("data source='" + path + "\\FIELD_FILES\\Inclusion.db'");
  17. filePath = path + "\\FIELD_FILES\\";
  18. }
  19. public FieldData(string path, frmReportApp a_ReportApp)
  20. {
  21. dbHelper = new SqlHelper("data source='" + path + "\\FIELD_FILES\\Inclusion.db'");
  22. filePath = path + "\\FIELD_FILES\\";
  23. m_Report = a_ReportApp;
  24. }
  25. /// <summary>
  26. /// 获取SegmentList
  27. /// </summary>
  28. /// <param name="model">Feature</param>
  29. /// <returns></returns>
  30. public List<Model.Field> GetFieldList()
  31. {
  32. //获取field信息
  33. string sql = "select fieldid,fieldposx,fieldposy,SEMPosX,SEMPosY from IncAData group by fieldid,fieldposx,fieldposy";
  34. DataTable DT = dbHelper.ExecuteDataTable(sql, null);
  35. //获取Particle信息
  36. string sqlp = "select a.*,b.XrayData from IncAData a left join XRayData b on a.FieldId =b.FieldId and a.XrayId= b.XrayIndex";
  37. DataTable DTP = dbHelper.ExecuteDataTable(sqlp, null);
  38. //获取Segment信息
  39. string strs = @"select * from Segment ";
  40. DataTable DTS = dbHelper.ExecuteDataTable(strs, null);
  41. //获取Element信息
  42. string sqle = @"select * from ElementChemistry ";
  43. DataTable DTE = dbHelper.ExecuteDataTable(sqle, null);
  44. List<Model.Field> Fields = new List<Model.Field>();
  45. DirectoryInfo info = new DirectoryInfo(filePath);
  46. int count = info.GetFiles("*.bmp").Length;
  47. for (int i=0;i< count; i++)
  48. {
  49. string imagePath = filePath + "Field" + m_Report.OriginalPoint.Rows[i]["ID"].ToString() + ".bmp";
  50. Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(m_Report.OriginalPoint.Rows[i]["ID"].ToString()), FieldPosX = Convert.ToInt32(m_Report.OriginalPoint.Rows[i]["FieldX"].ToString()), FieldPosY = Convert.ToInt32(m_Report.OriginalPoint.Rows[i]["FieldY"].ToString()), FieldImage = imagePath };
  51. DataRow[] drp = DTP.Select("fieldid=" + m_Report.OriginalPoint.Rows[i]["ID"].ToString());
  52. List<Model.Particle> listp = dbHelper.RowsToList<Model.Particle>(drp);
  53. foreach (Model.Particle modelp in listp)
  54. {
  55. //添加FeatureList信息
  56. DataRow[] drs = DTS.Select("fieldid=" + m_Report.OriginalPoint.Rows[i]["ID"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
  57. List<Model.Feature> flist = dbHelper.RowsToList<Model.Feature>(drs);
  58. modelp.FeatureList = flist;
  59. //添加ElementList信息
  60. DataRow[] dre = DTE.Select("fieldid=" + m_Report.OriginalPoint.Rows[i]["ID"].ToString() + " and XRayId=" + modelp.XrayId.ToString());
  61. List<Model.Element> elist = dbHelper.RowsToList<Model.Element>(dre);
  62. modelp.ElementList = elist;
  63. }
  64. modelf.ParticleList = listp;
  65. Fields.Add(modelf);
  66. }
  67. //foreach (DataRow dr in DT.Rows)
  68. //{
  69. // string imagePath = filePath + "Field" + dr["fieldid"].ToString() + ".bmp";
  70. // Model.Field modelf = new Model.Field() { FieldID = Convert.ToInt32(dr["fieldid"]), FieldPosX = Convert.ToInt32(dr["fieldposx"]), FieldPosY = Convert.ToInt32(dr["fieldposy"]), FieldImage = imagePath };
  71. // DataRow[] drp = DTP.Select("fieldid=" + dr["fieldid"].ToString());
  72. // List<Model.Particle> listp = dbHelper.RowsToList<Model.Particle>(drp);
  73. // foreach (Model.Particle modelp in listp)
  74. // {
  75. // //添加FeatureList信息
  76. // DataRow[] drs = DTS.Select("fieldid=" + dr["fieldid"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
  77. // List<Model.Feature> flist = dbHelper.RowsToList<Model.Feature>(drs);
  78. // modelp.FeatureList = flist;
  79. // //添加ElementList信息
  80. // DataRow[] dre = DTE.Select("fieldid=" + dr["fieldid"].ToString() + " and XRayId=" + modelp.XrayId.ToString());
  81. // List<Model.Element> elist = dbHelper.RowsToList<Model.Element>(dre);
  82. // modelp.ElementList = elist;
  83. // }
  84. // modelf.ParticleList = listp;
  85. // Fields.Add(modelf);
  86. //}
  87. return Fields;
  88. }
  89. /// <summary>
  90. /// 获取SegmentDataTable
  91. /// </summary>
  92. /// <param name="model">Feature</param>
  93. /// <returns></returns>
  94. public DataTable GetGeneralInfo()
  95. {
  96. //存放查询数据的数据表
  97. DataTable DT = null;
  98. string sql = "select * from GeneralInfo";
  99. DT = dbHelper.ExecuteDataTable(sql, null);
  100. return DT;
  101. }
  102. /// <summary>
  103. /// 获取filed数量
  104. /// </summary>
  105. /// <param name="model">Feature</param>
  106. /// <returns></returns>
  107. public int GetFiledCount()
  108. {
  109. //存放查询数据的数据表
  110. DataTable DT = null;
  111. string sql = "select FieldId from IncAData group by FieldId";
  112. DT = dbHelper.ExecuteDataTable(sql, null);
  113. return DT.Rows.Count;
  114. }
  115. /// <summary>
  116. /// 获取颗粒数量
  117. /// </summary>
  118. /// <param name="model">Feature</param>
  119. /// <returns></returns>
  120. public int GetparticleCount()
  121. {
  122. //存放查询数据的数据表
  123. DataTable DT = null;
  124. string sql = "select 1 from IncAData";
  125. DT = dbHelper.ExecuteDataTable(sql, null);
  126. return DT.Rows.Count;
  127. }
  128. /// <summary>
  129. /// 获取所有的颗粒信息
  130. /// </summary>
  131. /// <returns></returns>
  132. public DataTable GetAllParticle_DataTable()
  133. {
  134. DataTable DT = null;
  135. string sql = "select * from IncAData where typeid > 9";
  136. DT = dbHelper.ExecuteDataTable(sql, null);
  137. return DT;
  138. }
  139. /// <summary>
  140. /// 获取颗粒总面积
  141. /// </summary>
  142. /// <param name="model">Feature</param>
  143. /// <returns></returns>
  144. public int GetparticleArea()
  145. {
  146. //存放查询数据的数据表
  147. DataTable DT = null;
  148. string sql = "select sum(Area) from IncAData";
  149. DT = dbHelper.ExecuteDataTable(sql, null);
  150. return DT.Rows.Count > 0 ? Convert.ToInt32(DT.Rows[0][0]) : 0;
  151. }
  152. }
  153. }