FieldData.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using DevExpress.CodeParser;
  2. using OTSCommon.DBOperate.Model;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO;
  8. namespace OTSIncAReportApp.DataOperation.DataAccess
  9. {
  10. public class FieldData
  11. {
  12. private SqlHelper dbHelper;
  13. //测量文件地址
  14. private string filePath;
  15. public FieldData(string path)
  16. {
  17. dbHelper = new SqlHelper("data source='" + path + "\\FIELD_FILES\\Inclusion.db'");
  18. filePath = path + "\\FIELD_FILES\\";
  19. }
  20. /// <summary>
  21. /// 获取SegmentList
  22. /// </summary>
  23. /// <param name="model">Feature</param>
  24. /// <returns></returns>
  25. public List<Field> GetFieldList()
  26. {
  27. //获取field信息
  28. string sql = "select fieldid,fieldposx,fieldposy from field ";//select fieldid,fieldposx,fieldposy from field
  29. DataTable DT = dbHelper.ExecuteDataTable(sql, null);
  30. string checksql = "SELECT COUNT(*) AS field_exists FROM pragma_table_info('IncAData') WHERE name = 'SubParticles';";
  31. var checkresult = dbHelper.ExecuteQueryResult(checksql);
  32. if (Convert.ToInt32( checkresult) == 0)
  33. {
  34. string alterSql = "ALTER TABLE IncAData ADD COLUMN SubParticles TEXT";
  35. dbHelper.ExecuteQueryResult(alterSql);
  36. }
  37. string sqlp = "select * from IncAData where SubParticles isnull or SubParticles='IsSubParticle'";
  38. DataTable DTP = dbHelper.ExecuteDataTable(sqlp, null);
  39. //获取Segment信息
  40. string strs = @"select * from Segment ";
  41. DataTable DTS = dbHelper.ExecuteDataTable(strs, null);
  42. //获取Element信息
  43. string sqle = @"select * from ElementChemistry ";
  44. DataTable DTE = dbHelper.ExecuteDataTable(sqle, null);
  45. List<Field> Fields = new List<Field>();
  46. DirectoryInfo info = new DirectoryInfo(filePath);
  47. //int count = info.GetFiles("*.bmp").Length;
  48. int fldcount = DT.Rows.Count;
  49. for (int i=0;i< fldcount; i++)
  50. {
  51. string imagePath = filePath + "Field" + DT.Rows[i]["FieldId"].ToString() + ".bmp";
  52. 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()), FieldImageName = imagePath };
  53. DataRow[] drp = DTP.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString());
  54. List<Particle> listp = dbHelper.RowsToList<Particle>(drp);
  55. foreach (Particle modelp in listp)
  56. {
  57. //添加FeatureList信息
  58. DataRow[] drs = DTS.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString() + " and particleid=" + modelp.ParticleId.ToString());
  59. List<Segment> flist = dbHelper.RowsToList<Segment>(drs);
  60. modelp.SegmentList = flist;
  61. //添加ElementList信息
  62. DataRow[] dre = DTE.Select("fieldid=" + DT.Rows[i]["FieldId"].ToString() + " and XRayId=" + modelp.XrayId.ToString());
  63. List<Element> elist = dbHelper.RowsToList<Element>(dre);
  64. modelp.ElementList = elist;
  65. }
  66. modelf.ParticleList = listp;
  67. Fields.Add(modelf);
  68. }
  69. return Fields;
  70. }
  71. /// <summary>
  72. /// 获取SegmentDataTable
  73. /// </summary>
  74. /// <param name="model">Feature</param>
  75. /// <returns></returns>
  76. public DataTable GetGeneralInfo()
  77. {
  78. //存放查询数据的数据表
  79. DataTable DT = null;
  80. string sql = "select * from GeneralInfo";
  81. DT = dbHelper.ExecuteDataTable(sql, null);
  82. return DT;
  83. }
  84. /// <summary>
  85. /// 获取filed数量
  86. /// </summary>
  87. /// <param name="model">Feature</param>
  88. /// <returns></returns>
  89. public int GetFiledCount()
  90. {
  91. //存放查询数据的数据表
  92. DataTable DT = null;
  93. string sql = "select FieldId from Field";
  94. DT = dbHelper.ExecuteDataTable(sql, null);
  95. return DT.Rows.Count;
  96. }
  97. /// <summary>
  98. /// 获取颗粒数量
  99. /// </summary>
  100. /// <param name="model">Feature</param>
  101. /// <returns></returns>
  102. public int GetparticleCount()
  103. {
  104. //存放查询数据的数据表
  105. DataTable DT = null;
  106. string sql = "select 1 from IncAData where SubParticles is not 'IsSubParticle'";
  107. DT = dbHelper.ExecuteDataTable(sql, null);
  108. return DT.Rows.Count;
  109. }
  110. /// <summary>
  111. /// 获取所有的颗粒信息
  112. /// </summary>
  113. /// <returns></returns>
  114. public DataTable GetAllParticle_DataTable()
  115. {
  116. DataTable DT = null;
  117. string sql = "select * from IncAData where typeid > 9 and SubParticles is not 'IsSubParticle'";
  118. DT = dbHelper.ExecuteDataTable(sql, null);
  119. return DT;
  120. }
  121. /// <summary>
  122. /// 获取颗粒总面积
  123. /// </summary>
  124. /// <param name="model">Feature</param>
  125. /// <returns></returns>
  126. public double GetparticleArea()
  127. {
  128. DataTable DT = null;
  129. string sql = "select sum(Area) from IncAData where SubParticles is not 'IsSubParticle'";
  130. DT = dbHelper.ExecuteDataTable(sql, null);
  131. if (DT == null) return 0;
  132. double particleArea = 0;
  133. if(double.TryParse(DT.Rows[0][0].ToString(),out particleArea))
  134. {
  135. return particleArea;
  136. }else{
  137. return 0;
  138. }
  139. }
  140. }
  141. }