MergeParticleDB.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using OTSCLRINTERFACE;
  2. using OTSDataType;
  3. using OTSModelSharp.DTLBase;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Data.SQLite;
  8. using System.Drawing;
  9. using System.Linq;
  10. namespace OTSModelSharp
  11. {
  12. public class CMergeParticleDB : CSQLiteDB
  13. {
  14. public CMergeParticleDB(IDBStoreBase _conStr, IDBTableBase _table) : base(_conStr, _table)
  15. {
  16. }
  17. public bool SaveAParticle( COTSParticleClr a_pParticle, CPosXrayClr a_pXray, System.Drawing.Point fldPos)
  18. {
  19. var tableInfoPtr = GetTableInfo();
  20. var datastorePtr = GetDatastore();
  21. Rectangle prec = (Rectangle)a_pParticle.GetParticleRect();
  22. System.Drawing.Point pos = (System.Drawing.Point)a_pParticle.GetSEMPos();
  23. String sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
  24. var cmd = tableInfoPtr.GetInsertCommand(true);
  25. var paras = cmd.Value;
  26. paras[0].Value = a_pParticle.GetFieldId();
  27. paras[1].Value = a_pParticle.GetAnalysisId();
  28. paras[2].Value = a_pParticle.GetAveGray();
  29. paras[3].Value = prec.Left;
  30. paras[4].Value = prec.Top;
  31. paras[5].Value = prec.Width;
  32. paras[6].Value = prec.Height;
  33. paras[7].Value = a_pParticle.GetActualArea();
  34. paras[8].Value = pos.X;
  35. paras[9].Value = pos.Y;
  36. paras[10].Value = a_pParticle.GetType();
  37. paras[11].Value = a_pXray.GetElementQuantifyData().Count;
  38. paras[12].Value = a_pParticle.GetFeature().GetSegmentsList().Count;
  39. paras[13].Value = fldPos.X;
  40. paras[14].Value = fldPos.Y;
  41. paras[15].Value = a_pParticle.GetParticleId();
  42. paras[16].Value = a_pParticle.GetDMAX();
  43. paras[17].Value = a_pParticle.GetDMIN();
  44. paras[18].Value = a_pParticle.GetDMPERP();
  45. paras[19].Value = a_pParticle.GetDPRIMETER();
  46. paras[20].Value = a_pParticle.GetORIENTATION();
  47. paras[21].Value = a_pParticle.GetDINSCR();
  48. paras[22].Value = a_pParticle.GetDMEAN();
  49. paras[23].Value = a_pParticle.GetDELONG();
  50. paras[24].Value = a_pParticle.GetFeretDiameter();
  51. paras[25].Value = a_pParticle.GetTypeName();
  52. paras[26].Value = a_pParticle.GetTypeColor();
  53. paras[27].Value = a_pParticle.GetConnectedParticlesName();
  54. List<KeyValuePair<string, SQLiteParameter[]>> cmds = new List<KeyValuePair<string, SQLiteParameter[]>>();
  55. cmds.Add(cmd);
  56. datastorePtr.ExecuteNonQueryBatch(ref cmds);
  57. return true;
  58. }
  59. public bool UpdataAParticle( COTSParticleClr a_pParticle)
  60. {
  61. var tableInfoPtr = GetTableInfo();
  62. var datastorePtr = GetDatastore();
  63. String sSQLCommand = "Update IncAData \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};";
  64. sSQLCommand= String.Format(sSQLCommand,
  65. a_pParticle.GetAveGray(),
  66. a_pParticle.GetActualArea(),
  67. a_pParticle.GetType(),
  68. a_pParticle.GetFieldId(),
  69. a_pParticle.GetParticleId());
  70. //var helper = new SQLiteHelper(datastorePtr);
  71. if (datastorePtr.RunCommand(sSQLCommand) != true)
  72. {
  73. return false;
  74. }
  75. return true;
  76. }
  77. public DataTable GetQueryOfAllRecord()
  78. {
  79. DataTable query;
  80. var datastorePtr = GetDatastore();
  81. var tableInfoPtr = GetTableInfo();
  82. String sSQLCommand = "";
  83. String.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};",
  84. (String)tableInfoPtr.GetTableName());
  85. //var helper = datastorePtr;
  86. query = datastorePtr.QueryByCmdForDataTable(sSQLCommand); ;
  87. return query;
  88. }
  89. public DataTable GetQueryById( long a_nXrayId, long a_nFieldId)
  90. {
  91. DataTable query;
  92. var datastorePtr = GetDatastore();
  93. var tableInfoPtr = GetTableInfo();
  94. var sXrayIdColumnName = tableInfoPtr.GetColumnName((int)CMergeParticleTable.ColumnID.N_XRAY_ID - (int)CMergeParticleTable.ColumnID.MIN);
  95. var sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CMergeParticleTable.ColumnID.N_FIELD_ID - (int)CMergeParticleTable.ColumnID.MIN);
  96. String sSQLCommand = "";
  97. String.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};",
  98. (String) tableInfoPtr.GetTableName(),
  99. sFieldIdColumnName,
  100. a_nFieldId,
  101. sXrayIdColumnName,
  102. a_nXrayId);
  103. //var helper = new SQLiteHelper(datastorePtr);
  104. query = datastorePtr.QueryByCmdForDataTable(sSQLCommand);
  105. return query;
  106. }
  107. public void DeleteDataByFieldNo(int fieldStartNo)
  108. {
  109. string sSQLCommand;
  110. var datastorePtr = GetDatastore();
  111. sSQLCommand = "delete * from MergedParticleInfo where FieldId>" + fieldStartNo.ToString();
  112. if (!datastorePtr.RunCommand(sSQLCommand))
  113. {
  114. return;
  115. }
  116. }
  117. }
  118. }