Beispiel #1
0
        public static void toWitsTable(String str, out String tabid)
        {
            WitsTable wt = new WitsTable();
            DataRow   dr;
            ConcurrentQueue <String> itemIndexs = new ConcurrentQueue <string>();
            ConcurrentQueue <String> values     = new ConcurrentQueue <string>();

            String[] temp;
            temp  = str.Split(dataSep, StringSplitOptions.RemoveEmptyEntries);
            tabid = temp[0].Substring(0, 2);
            foreach (String var in temp)
            {
                itemIndexs.Enqueue(var.Substring(2, 2));
                values.Enqueue(var.Substring(4, var.Length - 4));
            }

            while (itemIndexs.Count > 0 && values.Count > 0)
            {
                String itemIndex;
                String value;
                itemIndexs.TryDequeue(out itemIndex);
                values.TryDequeue(out value);
                dr           = wt.NewRow();
                dr.ItemArray = new String[] { itemIndex, value };
                wt.Rows.Add(dr);
            }
            idQueue.Enqueue(tabid);
            tabQueue.Enqueue(wt);
        }
Beispiel #2
0
        private void button_NewDBFile_Click(object sender, EventArgs e)
        {
            SQLiteDBHelper _helper = new SQLiteDBHelper(Config.CfgInfo.StaticDB_PATH);
            string         path    = Config.CfgInfo.FoldBrowserPath + "\\" + textBox_new_wellname.Text.Trim() + "_" + textBox_new_wellid.Text.Trim() + "_" + textBox_new_welltime.Text.Trim() + ".db3";

            _helper.CreateDB(path, "2", "07", getXMLConfig());
            WitsTable wt = new WitsTable("APS", "07", getXMLConfig());
        }
Beispiel #3
0
        //根据数据源tempTable取出表号,查字典将curveName和Value值对应,然后写入相应数据库表中
        private void ParseTableData(DataTable tempTable, int columnIndex)
        {
            if (tempTable == null || tempTable.Rows.Count <= 0)
            {
                return;
            }
            Dictionary <string, DataTable> curveNameDictionary = new Dictionary <string, DataTable>();
            DataTable dataTable = new DataTable();
            WitsTable witsTable = new WitsTable();
            //取出TableNo
            List <string> TableNolist = new List <string>();

            foreach (DataRow dr in tempTable.Rows)
            {
                string value = dr[columnIndex].ToString();
                if (!TableNolist.Contains(value))
                {
                    TableNolist.Add(value);
                }
            }
            //获取WitsTable用于保存解析后的数据,作为发送给数据库的数据源
            foreach (string toolName in m_curveNameDictionary.Keys)
            {
                if (m_curveNameDictionary.TryGetValue(toolName, out curveNameDictionary))
                {
                    foreach (string tableNo in curveNameDictionary.Keys)
                    {
                        //本次数据,含此表号,继续查询
                        if (TableNolist.Contains(tableNo))
                        {
                            if (curveNameDictionary.TryGetValue(tableNo, out dataTable))
                            {
                                //根据TableNolist中TableNo,取出相应行的"ItemIndex"和"Value"
                                foreach (DataRow drTemp in tempTable.Rows)
                                {
                                    //该行第一列值与TableNo一致
                                    if (tableNo == drTemp[columnIndex].ToString())
                                    {
                                        //给dataTable赋值,将值与curveName对应
                                        foreach (DataRow dr in dataTable.Rows)
                                        {
                                            //通过tempTable的index和dataTable的ItemIndex匹配,给dataTable赋值
                                            if (drTemp["ItemIndex"].ToString() == dr["ItemIndex"].ToString())
                                            {
                                                dr["Value"] = drTemp[columnIndex + 2];
                                            }
                                        }
                                    }
                                }
                                foreach (String strKey in m_witsTableDictionary[toolName].Keys)
                                {
                                    if (strKey == tableNo)
                                    {
                                        if (m_witsTableDictionary[toolName].TryGetValue(tableNo, out witsTable))
                                        {
                                            DataRow witsRow = witsTable.NewRow();
                                            foreach (DataRow dr in dataTable.Rows)
                                            {
                                                //两个curveName匹配,给witsTable赋值
                                                if (witsTable.Columns.Contains(dr["curveName"].ToString()))
                                                {
                                                    witsRow[dr["curveName"].ToString()] = dr["Value"];
                                                }
                                            }
                                            witsTable.Rows.Add(witsRow);
                                            Stopwatch sw = new Stopwatch();
                                            sw.Start();
                                            m_dBHelper.InsertWitsData(toolName, tableNo, witsTable);
                                            sw.Stop();
                                            long time1 = sw.ElapsedMilliseconds;
                                            witsTable.Clear();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
        //创建curveName字典和数据库及其表
        private void createCurveNameDictionaryAndDB()
        {
            //创建数据库
            if (m_wellConfig_From.getwellcountPath() == "" || m_wellConfig_From.getwellcountPath() == null)
            {
                MessageBox.Show("未配置井路径,请配置!");
                return;
            }
            String wellcountPath = m_wellConfig_From.getwellcountPath();
            String wellcount     = m_wellConfig_From.getwellcount();
            String filename      = wellcount + ".db3";
            String dbPath        = m_wellConfig_From.creatDirectory(wellcountPath, filename);

            m_realDBHelper = m_wellConfig_From.getRealDBHelper();
            m_realDBHelper.CreateDB(dbPath);
            //m_realDBHelper.InsertWellInfo(dbPath);
            m_dBHelper = new SQLiteDBHelper(dbPath);
            m_dBHelper.CreateDB(dbPath);
            List <String> serverTableList = new List <string>();
            List <String> clientTableList = new List <string>();
            DataTable     curveNameTable  = new DataTable();
            List <String> curveNameList   = new List <string>();
            //获取Server和Client所选仪器及对应选择的表号
            Dictionary <String, List <String> > selectServerToolDictionary = m_recConfig_Form.getSelectServerToolDictionary();
            Dictionary <String, List <String> > selectClientToolDictionary = m_recConfig_Form.getSelectClientToolDictionary();

            //创建曲线字典和wits表
            if (selectServerToolDictionary != null)
            {
                foreach (String toolName in selectServerToolDictionary.Keys)
                {
                    if (selectServerToolDictionary.TryGetValue(toolName, out serverTableList))
                    {
                        //根据toolName创建Wits表字典,供查询index对应的curveName(短助记符)
                        Dictionary <String, DataTable> curveNameDictionary = m_CurveNameDictionary.createDictionary(toolName, serverTableList);
                        m_curveNameDictionary.Add(toolName, m_CurveNameDictionary.createDictionary(toolName, serverTableList));
                        serverTableList.Clear();
                        //同一个仪器名下的wits表
                        Dictionary <String, WitsTable> witsTableDic = new Dictionary <string, WitsTable>();
                        //创建数据库表和WITS表
                        foreach (String tableNo in curveNameDictionary.Keys)
                        {
                            if (curveNameDictionary.TryGetValue(tableNo, out curveNameTable))
                            {
                                for (int i = 0; i < curveNameTable.Rows.Count; i++)
                                {
                                    curveNameList.Add(curveNameTable.Rows[i][1].ToString());
                                }
                                m_dBHelper.CreateTabs(toolName, tableNo, curveNameList);
                                WitsTable witsTable = new WitsTable(toolName, tableNo, curveNameList);
                                witsTableDic.Add(tableNo, witsTable);
                                curveNameTable.Clear();
                                curveNameList.Clear();
                            }
                        }
                        m_witsTableDictionary.Add(toolName, witsTableDic);
                    }
                }
            }
            if (selectClientToolDictionary != null)
            {
                foreach (String toolName in selectClientToolDictionary.Keys)
                {
                    if (selectClientToolDictionary.TryGetValue(toolName, out clientTableList))
                    {
                        //根据toolName创建Wits表字典,供查询index对应的curveName(短助记符)
                        Dictionary <String, DataTable> curveNameDictionary = m_CurveNameDictionary.createDictionary(toolName, clientTableList);
                        m_curveNameDictionary.Add(toolName, m_CurveNameDictionary.createDictionary(toolName, clientTableList));
                        clientTableList.Clear();
                        //同一个仪器名下的wits表
                        Dictionary <String, WitsTable> witsTableDic = new Dictionary <string, WitsTable>();
                        //创建数据库表和WITS表
                        foreach (String tableNo in curveNameDictionary.Keys)
                        {
                            if (curveNameDictionary.TryGetValue(tableNo, out curveNameTable))
                            {
                                for (int i = 0; i < curveNameTable.Rows.Count; i++)
                                {
                                    curveNameList.Add(curveNameTable.Rows[i][1].ToString());
                                }
                                m_dBHelper.CreateTabs(toolName, tableNo, curveNameList);
                                WitsTable witsTable = new WitsTable(toolName, tableNo, curveNameList);
                                witsTableDic.Add(tableNo, witsTable);
                                curveNameTable.Clear();
                                curveNameList.Clear();
                            }
                        }
                        m_witsTableDictionary.Add(toolName, witsTableDic);
                    }
                }
            }
        }