浏览代码

颗粒列表结构各种SQL语句优化尝试

CXS 3 年之前
父节点
当前提交
e85876f76c

+ 1 - 1
OTSIncAReportApp/Control_Grids/ParticlesGridDevidePage.cs

@@ -544,7 +544,7 @@ namespace OTSIncAReportGrids
             for (int i = 0; i < particles.Rows.Count; i++)
             {
                 //更新进度,每100条记录加载完,更新一次进度
-                if (i % 5 == 0)
+                if (i % 10 == 0)
                     
                     m_frm_userprogress.SetProgressValueAndText((int)(jd * i), "loading..");
 

+ 19 - 1
OTSIncAReportApp/DataOperation/DataAccess/ParticleData.cs

@@ -419,7 +419,25 @@ namespace OTSIncAReportApp.DataOperation.DataAccess
         {
             int p = (currentPage - 1) * pagesize;
             string sqliteString = "select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX as 'SEMPosX',FieldPosY as 'SEMPosY',ParticleId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,SubParticles, (select group_concat(name || '-' || Percentage, ';') from ElementChemistry where XRayId = MergedParticleInfo.XRayId and fieldid = MergedParticleInfo.fieldid) as Element from MergedParticleInfo where 1=1 " + condition + " union select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX,FieldPosY,ParticleId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,'' as SubParticles,(select group_concat(name || '-' || Percentage, ';') from ElementChemistry where XRayId = INcAData.XRayId and fieldid = INcAData.fieldid  ) as Element from INcAData where xrayid > -1 and instr(','||(select ifnull(group_concat(SubParticles, ','),'') from MergedParticleInfo)|| ',',',' || fieldid || ':' || particleid || ',')= 0 " + condition + " order by " + OrderFunction + " limit " + pagesize.ToString() + " offset " + p.ToString();
-            DataTable DT = dbHelper.ExecuteQuery(sqliteString);
+            //SQLiteTransaction tr = dbHelper.BeginTranscation();
+            DataTable DT=new DataTable();
+            DT = dbHelper.ExecuteQuery2(sqliteString);
+            //try
+            //{
+            //    DT = dbHelper.ExecuteQuery(sqliteString);
+            //    dbHelper.TranscationCommit(tr);
+            //}
+            //catch (Exception ee)
+            //{
+            //    //回滚
+            //    dbHelper.TranscationRollback(tr);
+            //}
+            //finally
+            //{
+
+            //    dbHelper.CloseConnection();
+            //}
+
             return DT;
         }
 

+ 15 - 0
OTSIncAReportApp/DataOperation/DataAccess/SqlHelper.cs

@@ -129,6 +129,21 @@ namespace OTSIncAReportApp.DataOperation.DataAccess
             return dt;
         }
 
+        public DataTable ExecuteQuery2(string queryString)
+        {
+            SQLiteCommand sqlCommand = new SQLiteCommand(queryString,dbConnection);
+            try
+            {
+                SQLiteDataReader reader = sqlCommand.ExecuteReader();
+                dt = new DataTable();
+                dt.Load(reader);
+            }
+            catch (Exception ee)
+            {
+
+            }
+            return dt;
+        }
 
         /// <summary>
         /// 关闭数据库连接