Пример #1
0
        private void btnReadData_Click(object sender, EventArgs e)
        {
            Reset();
            try
            {
                this.Cursor = Cursors.WaitCursor;
                if (string.IsNullOrEmpty(ucAxfFolder.SelectedPath))
                {
                    return;
                }
                if (ucTargetFeatureClass.SelectFeatureLayer == null)
                {
                    return;
                }

                _axfInfoList = new List <AxfInfo>();
                List <FileInfo> axfFileInfos = FolderHelper.GetFileInfos(this.ucAxfFolder.SelectedPath,
                                                                         new List <string>()
                {
                    ".axf"
                });

                foreach (FileInfo axfFileInfo in axfFileInfos)
                {
                    if (axfFileInfo.Name.StartsWith("BackgroundLayers"))
                    {
                        continue;
                    }

                    if (db.Open(axfFileInfo.FullName))
                    {
                        System.Data.SqlServerCe.SqlCeResultSet pSqlCeResultSet = db.GetTableData("AXF_TABLES", null, SortOrder.None) as System.Data.SqlServerCe.SqlCeResultSet;
                        dataGridView1.DataSource = pSqlCeResultSet;
                        List <AxfTables> pAxfTablesList = AxfTables.GetAxfTablesList(pSqlCeResultSet, dataGridView1);
                        foreach (AxfTables axfTables in pAxfTablesList)
                        {
                            if (axfTables.TableName != this.ucTargetFeatureClass.SelectFeatureLayer.Name)
                            {
                                continue;
                            }
                            pSqlCeResultSet          = db.GetTableData(axfTables.TableName, null, SortOrder.None) as System.Data.SqlServerCe.SqlCeResultSet;
                            dataGridView1.DataSource = pSqlCeResultSet;
                            List <AxfField> pAxfFieldList = AxfField.GetAxfFieldList(pSqlCeResultSet, dataGridView1);
                            AxfInfo         pAxfInfo      = new AxfInfo
                            {
                                AddCount        = pAxfFieldList.Count(c => c.AxfStatus == 1),
                                ModifyCount     = pAxfFieldList.Count(c => c.AxfStatus == 2),
                                DeleteCount     = pAxfFieldList.Count(c => c.AxfStatus == 128),
                                NoEditCount     = pAxfFieldList.Count(c => c.AxfStatus == 0),
                                AxfFieldList    = pAxfFieldList,
                                SourceLayerName = axfTables.TableName
                            };
                            IFeatureClass sourceFeatureClass = FeatureClassUtil.GetFeatureClass(axfFileInfo.FullName, axfTables.TableName);
                            if (sourceFeatureClass == null)
                            {
                                pAxfInfo.IsSelect = false;
                            }
                            else
                            {
                                pAxfInfo.IsSelect = true;
                            }
                            pAxfInfo.SourceFeatureClass = sourceFeatureClass;
                            pAxfInfo.TargetLayerName    = this.ucTargetFeatureClass.SelectFeatureLayer.Name;
                            pAxfInfo.TargetFeatureLayer = this.ucTargetFeatureClass.SelectFeatureLayer;
                            pAxfInfo.AxfFilePath        = axfFileInfo.FullName;

                            _axfInfoList.Add(pAxfInfo);
                        }

                        db.Close();
                    }
                }
                dataGridView2.DataSource = _axfInfoList;
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }
Пример #2
0
 public void Close()
 {
     _sqlCeDb.Close();
     _sqlCeDb.Dispose();
 }