private void button_Send_Click(object sender, EventArgs e) { SQLiteDBHelper _helper = new SQLiteDBHelper(Config.CfgInfo.DBPath_Well); ConcurrentQueue <String> frags = new ConcurrentQueue <string>(); String[] tempFrags; String data; String tabid; WitsTable wt; String frag; data = textBox_SendData.Text.Trim(); tempFrags = data.Split(fragSep, StringSplitOptions.RemoveEmptyEntries); foreach (String str in tempFrags) { frags.Enqueue(str); } while (frags.Count > 0) { frags.TryDequeue(out frag); toWitsTable(frag, out tabid); if (tabQueue.Count > 0) { tabQueue.TryDequeue(out wt); idQueue.TryDequeue(out tabid); _helper.WitsTabAnalysis(tabid, wt); _helper.InsertWitsData("2", tabid, wt); } } }
void saveData() { String[] colNames = { "WID", "SKNO", "RID", "SQID", "DATE", "TIME", "ACTC", "DBTM", "DBTV", "DMEA", "DVER", "BPOS", "ROPA", "HKLA", "HKLX", "WOBA", "WOBX", "TQA", "TQX", "RPMA", "SPPA", "CHKP", "SPM1", "SPM2", "SPM3", "TVA", "TVCA", "MFOP", "MFOA", "MFIA", "MDOA", "MDIA", "MTOA", "MTIA", "MCOA", "MCIA", "STKC", "LSTK", "DRTM", "GASA", "SPR1", "SPR2", "SPR3", "SPR4", "SPR5" }; foreach (String col in colNames) { DataColumn dc = new DataColumn(col, System.Type.GetType("System.String")); wt.Columns.Add(dc); } realhelper.InsertWitsData("Shenkai", "01", wt); }
//根据数据源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(); } } } } } } } } }