UserSTDDbAccess.cs 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. using OTSCommon.DBOperate;
  2. using OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration;
  3. using OTSIncAReportApp.DataOperation.DataAccess;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using static OTSDataType.otsdataconst;
  11. namespace OTSIncAReportApp._2_CommonFunction.CommonClass
  12. {
  13. public class UserSTDDbAccess
  14. {
  15. private SqlHelper dbHelper;
  16. public UserSTDDbAccess(string STDDbName, string resultpath)
  17. {
  18. NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
  19. if (!STDDbName.Contains(".db"))
  20. {
  21. STDDbName += ".db";
  22. }
  23. if (STDDbName.ToLower() == "nostddb.db")
  24. {
  25. dbHelper = null;
  26. log.Error("Failed to load user-defined library" + "!");
  27. }
  28. string fullPath = resultpath + STDDbName;
  29. string fullPath2 = System.IO.Directory.GetCurrentDirectory() + "\\Config\\SysData\\" + STDDbName;
  30. if (System.IO.File.Exists(fullPath))
  31. {
  32. dbHelper = new SqlHelper("data source='" + fullPath + "'");
  33. log.Warn("Loading the user standard library:" + fullPath + "!");
  34. }
  35. else if (System.IO.File.Exists(fullPath2))
  36. {
  37. dbHelper = new SqlHelper("data source='" + fullPath2 + "'");
  38. log.Warn("Loading the user standard library:" + fullPath2 + "!");
  39. }
  40. else
  41. {
  42. dbHelper = null;
  43. log.Error("Failed to load user-defined library" + "!");
  44. }
  45. }
  46. public DataTable GetSubAttributeFromDatabase()
  47. {
  48. string sqliteString = "select STDId,Hardness,Density,Electrical_conductivity from ClassifySTD";
  49. DataTable DT = new DataTable();
  50. DT = dbHelper.ExecuteQuery(sqliteString);
  51. return DT;
  52. }
  53. /// <summary>
  54. /// 获得颗粒类别
  55. /// </summary>
  56. /// <param name="StandardLibraryAddress">标准库地址</param>
  57. /// <returns></returns>
  58. public DataTable ObtainParticleCategory_start(string StandardLibraryAddress)
  59. {
  60. DataTable dataTable = new DataTable();
  61. dataTable.Columns.Add("GroupId");
  62. dataTable.Columns.Add("GroupName");
  63. dataTable.Columns.Add("inoId");
  64. dataTable.Columns.Add("display");
  65. DataTable get_dt = SelectStandardLibraryGrouping(StandardLibraryAddress);
  66. if (get_dt.Rows.Count == 0)
  67. {
  68. DataRow data = dataTable.NewRow();
  69. data["inoId"] = 0;
  70. data["GroupId"] = 0;
  71. data["GroupName"] = "Default";
  72. data["display"] = "0";
  73. dataTable.Rows.Add(data);
  74. return dataTable;
  75. }
  76. DataRow[] dataRow = get_dt.Select("", "iorder ASC");
  77. int shul = 0;
  78. string DefaultGroupId = "";
  79. foreach (DataRow row in dataRow)
  80. {
  81. if (row.ItemArray[1].ToString() != "Default")
  82. {
  83. DataRow data = dataTable.NewRow();
  84. data["inoId"] = shul;
  85. data["GroupId"] = row.ItemArray[0].ToString();
  86. data["GroupName"] = row.ItemArray[1].ToString();
  87. data["display"] = "0";
  88. dataTable.Rows.Add(data);
  89. shul++;
  90. }
  91. else
  92. {
  93. DefaultGroupId = row.ItemArray[0].ToString();
  94. }
  95. }
  96. DataRow data2 = dataTable.NewRow();
  97. data2["inoId"] = shul;
  98. data2["GroupId"] = DefaultGroupId;
  99. data2["GroupName"] = "Default";
  100. data2["display"] = "0";
  101. dataTable.Rows.Add(data2);
  102. return dataTable;
  103. }
  104. /// <summary>
  105. /// 获取规则数据
  106. /// </summary>
  107. /// <param name="strings">组类别</param>
  108. /// <param name="a_SelectedIndex">标准库地址</param>
  109. /// <returns></returns>
  110. public List<DataTable> ObtainRuleData_start(DataTable strings, string a_SelectedIndex)
  111. {
  112. List<DataTable> List_data = new List<DataTable>();
  113. DataTable dt_stl = new DataTable();
  114. SqLiteHelper sh = new SqLiteHelper("data source='" + a_SelectedIndex + "'");
  115. dt_stl = sh.ExecuteQuery("select * from ClassifySTD");
  116. dt_stl.Columns.Add("display");
  117. if (dt_stl == null)
  118. {
  119. List_data.Add(dt_stl);
  120. return List_data;
  121. }
  122. for (int i = 0; i < strings.Rows.Count; i++)
  123. {
  124. DataTable table = dt_stl.Clone();
  125. table.TableName = strings.Rows[i]["GroupId"].ToString();
  126. for (int a = 0; a < dt_stl.Rows.Count; a++)
  127. {
  128. if (strings.Rows[i]["GroupId"].ToString() == dt_stl.Rows[a]["GroupId"].ToString())
  129. {
  130. dt_stl.Rows[a]["display"] = 0;
  131. table.Rows.Add(dt_stl.Rows[a].ItemArray);
  132. }
  133. }
  134. DataView dvs = table.DefaultView;
  135. dvs.Sort = "ListNum ASC";
  136. DataTable TemporaryDataGroup = dvs.ToTable();
  137. List_data.Add(TemporaryDataGroup);
  138. }
  139. return List_data;
  140. }
  141. private DataTable SelectStandardLibraryGrouping(string a_SelectedIndex)
  142. {
  143. DataTable dt_stl = new DataTable();
  144. SqLiteHelper sh = new SqLiteHelper("data source='" + a_SelectedIndex + "'");
  145. dt_stl = sh.ExecuteQuery("select * from STDGroups");
  146. return dt_stl;
  147. }
  148. /// <summary>
  149. /// 获得颗粒类别
  150. /// </summary>
  151. /// <returns></returns>
  152. public List<string> ObtainParticleCategory(OTSReport_Export m_otsreport_export, BasicData basicData)
  153. {
  154. List<string> ClassName = new List<string>();
  155. if (m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype != OTS_SysType_ID.IncA)
  156. {
  157. DataTable get_dt = ReadClassification(basicData);
  158. DataTable getClass_dt = get_dt.Clone();
  159. DataRow[] dataRow = get_dt.Select("", "iorder ASC");
  160. foreach (DataRow row in dataRow)
  161. {
  162. if (row.ItemArray[1].ToString() != "Default")
  163. {
  164. getClass_dt.ImportRow(row);
  165. }
  166. }
  167. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  168. {
  169. ClassName.Add(getClass_dt.Rows[i][1].ToString());
  170. }
  171. ClassName.Add("Default");
  172. }
  173. else
  174. {
  175. DataTable getClass_dt = ReadClassification(basicData);
  176. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  177. {
  178. ClassName.Add(getClass_dt.Rows[i][1].ToString());
  179. }
  180. bool bl = false;
  181. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  182. {
  183. if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
  184. && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
  185. if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
  186. {
  187. if (!bl)
  188. {
  189. ClassName.Add("Default");
  190. bl = true;
  191. }
  192. }
  193. else
  194. {
  195. bool isDefault = false;
  196. for (int a = 0; a < ClassName.Count; a++)
  197. {
  198. if (getClass_dt.Rows[i]["GroupName"].ToString() == "Default")
  199. {
  200. isDefault = true;
  201. }
  202. }
  203. if (isDefault)
  204. {
  205. if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
  206. {
  207. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  208. }
  209. }
  210. else
  211. {
  212. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  213. }
  214. }
  215. }
  216. }
  217. return ClassName;
  218. }
  219. public DataTable ReadClassification(BasicData basicData)
  220. {
  221. DataTable dt_stl = new DataTable();
  222. SqLiteHelper sh = new SqLiteHelper("data source='" + basicData.GetFilePath() + "\\" + basicData.GetResfile() + "'");
  223. dt_stl = sh.ExecuteQuery("select * from STDGroups");
  224. return dt_stl;
  225. }
  226. public SqlHelper GetSqlHelper() { return dbHelper; }
  227. }
  228. }