public DataTable GetTraceJHMethod(string strPath) { List <TracerJHModel> lstTJM = new List <TracerJHModel>(); DataTable dtTJM = ListToDataTableUtil.ListToDataTable(lstTJM); FileStream fs = new FileStream(strPath, FileMode.Open); StreamReader sr = new StreamReader(fs); string strReadLine = sr.ReadLine(); while (strReadLine != null) { string[] strArray = Regex.Split(strReadLine, @"\s+"); DataRow drTJM = dtTJM.NewRow(); drTJM["smjh"] = strArray[0].Substring(1, strArray[0].Length - 2); drTJM["trace"] = strArray[1].Substring(1, strArray[1].Length - 2); dtTJM.Rows.Add(drTJM); strReadLine = sr.ReadLine(); } sr.Close(); fs.Close(); return(dtTJM); }
public static void GetAllLocation(string path) { string strReadLine; WellModel wm = new WellModel(); ListToDataTableUtil ltdtu = new ListToDataTableUtil(); List <WellModel> lstWM = new List <WellModel>(); dtSK = ltdtu.ListToDataTable(lstWM); FileStream fs = new FileStream(path, FileMode.Open); StreamReader sr = new StreamReader(fs); strReadLine = sr.ReadLine(); while (strReadLine != null) { if (strReadLine.Equals("COMPDAT")) { strReadLine = sr.ReadLine(); string[] strArray = Regex.Split(strReadLine, @"\s+"); if (strArray[5].Equals("'OPEN'")) { DataRow dr = dtSK.NewRow(); wm = new WellModel(); dr["jh"] = strArray[0].Substring(1, strArray[0].Length - 2); dr["x"] = Convert.ToInt32(strArray[1]); dr["y"] = Convert.ToInt32(strArray[2]); dr["k"] = Convert.ToInt32(strArray[3]); dtSK.Rows.Add(dr); } } strReadLine = sr.ReadLine(); } sr.Close(); fs.Close(); }
private void Form1_Load(object sender, EventArgs e) { gridResult.Visible = false; ReadFilesDAL.ReadPermX(); ReadFilesDAL.ReadDZ(); ReadFilesDAL.ReadPORO(); ReadFilesDAL.CalcDCXS(); WellModel wm = new WellModel(); List <ResultModel> lstRM = new List <ResultModel>(); List <WellModel> lstOil = new List <WellModel>(); List <WellModel> lstWater = new List <WellModel>(); ///List<WellModel> lstDY = new List<WellModel>(); ListToDataTableUtil ltdu = new ListToDataTableUtil(); dtResult = ltdu.ListToDataTable(lstRM); string[] sj = File.ReadAllLines("水.txt"); for (int i = 0; i < sj.Count(); i++) { wm = new WellModel(); string[] str = Regex.Split(sj[i], @"\s+"); wm.jhs = str[0]; wm.date = str[1]; wm.x = Convert.ToInt32(str[2]); wm.y = Convert.ToInt32(str[3]); wm.k = Convert.ToInt32(str[4]); wm.mncs = Convert.ToDouble(str[5]); lstWater.Add(wm); } dtWater = ltdu.ListToDataTable(lstWater); string[] yj = File.ReadAllLines("油.txt"); for (int i = 0; i < yj.Count(); i++) { wm = new WellModel(); string[] str = Regex.Split(yj[i], @"\s+"); wm.jhy = str[0]; wm.date = str[1]; wm.x = Convert.ToInt32(str[2]); wm.y = Convert.ToInt32(str[3]); wm.k = Convert.ToInt32(str[4]); wm.mncs = Convert.ToDouble(str[5]); wm.mncy = Convert.ToDouble(str[6]); wm.mncye = Convert.ToDouble(str[7]); wm.hs = Convert.ToDouble(str[8]); lstOil.Add(wm); } dtOil = ltdu.ListToDataTable(lstOil); DataTable dtDate = dtWater.DefaultView.ToTable(true, "date"); for (int i = 0; i < dtDate.Rows.Count; i++) { cmbDate.Properties.Items.Add(dtDate.Rows[i]["date"]); } }
public static void GetTreeListMethod() { List <TreeListModel> lstTLM = new List <TreeListModel>(); dtTreeList = ListToDataTableUtil.ListToDataTable(lstTLM); string s = DXApplication1.Properties.Resources.treelist; string[] arr = Regex.Split(s, @"\s+"); for (int i = 0; i < arr.Count() - 1; i = i + 3) { DataRow drTreeList = dtTreeList.NewRow(); drTreeList["parentid"] = Convert.ToInt32(arr[i]); drTreeList["id"] = Convert.ToInt32(arr[i + 1]); drTreeList["name"] = arr[i + 2]; dtTreeList.Rows.Add(drTreeList); } }
public static void GetJJMethod() { List <JJModel> lstJJ = new List <JJModel>(); dtJJ = ListToDataTableUtil.ListToDataTable(lstJJ); string s = DXApplication1.Properties.Resources.jj; string[] arr = Regex.Split(s, @"\s+"); for (int i = 0; i < arr.Count() - 1; i = i + 3) { DataRow drJJ = dtJJ.NewRow(); drJJ["jhy"] = arr[i]; drJJ["jhs"] = arr[i + 1]; drJJ["jj"] = arr[i + 2]; dtJJ.Rows.Add(drJJ); } }
public void GetMnLayer(string strPath) { dtWater.Clear(); dtOil.Clear(); DateUtil du = new DateUtil(); string strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null)); string strEndDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1)); string strReadLine; string strJH = string.Empty; string strDate = string.Empty; bool isWell = false; bool isWaterWell = false; int isDate = -1, isRead = -1; FileStream fs = new FileStream(strPath, FileMode.Open); StreamReader sr = new StreamReader(fs); List <WellModel> lstWaterM = new List <WellModel>(); List <WellModel> lstOilM = new List <WellModel>(); dtWater = ListToDataTableUtil.ListToDataTable(lstWaterM); dtOil = ListToDataTableUtil.ListToDataTable(lstOilM); strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); string trim = strReadLine.Trim(); while (strReadLine != null) { trim = strReadLine.Trim(); string[] strArray = Regex.Split(trim, @"\s+"); if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT")))) { strDate = strArray[strArray.Length - 1]; if (strDate.Equals(strStartDate)) { isDate = 0; } if (strDate.Equals(strEndDate)) { isRead = -1; isDate = -1; break; } } if (isDate == 0) { if (trim.Equals("INJECTION REPORT")) { isRead = 0; isWaterWell = true; } else if (trim.Equals("PRODUCTION REPORT")) { isRead = 0; isWaterWell = false; } else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS")) { isRead = -1; } if (isRead >= 0) { if (isRead == 0) { isRead++; for (int i = 0; i < 7; i++) { strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); } } } trim = strReadLine.Trim(); strArray = Regex.Split(trim, @"\s+"); if (isWaterWell) { if ((strArray.Count() >= 12) && (strArray.Count() <= 13)) { if (strArray.Count() == 12 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { if (Convert.ToDouble(strArray[5]) > 0) { DataRow drWater = dtWater.NewRow(); drWater["DATE"] = strDate; drWater["dtDate"] = du.TextDateStringCovertToDateTime(strDate); drWater["jhs"] = strJH; drWater["x"] = Convert.ToInt32(strArray[1]); drWater["y"] = Convert.ToInt32(strArray[2]); drWater["k"] = Convert.ToInt32(strArray[3]); drWater["mncs"] = Convert.ToDouble(strArray[5]); dtWater.Rows.Add(drWater); } } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } else { if (strArray.Count() >= 16) { if (strArray.Count() == 16 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { if (Convert.ToDouble(strArray[4]) > 0) { DataRow drOil = dtOil.NewRow(); drOil["DATE"] = strDate; drOil["dtDate"] = du.TextDateStringCovertToDateTime(strDate); drOil["jhy"] = strJH; drOil["x"] = Convert.ToInt32(strArray[1]); drOil["y"] = Convert.ToInt32(strArray[2]); drOil["k"] = Convert.ToInt32(strArray[3]); if (Convert.ToDouble(strArray[5]) < 0) { drOil["mncs"] = 0; } else { drOil["mncs"] = Convert.ToDouble(strArray[5]); } drOil["mncy"] = Convert.ToDouble(strArray[4]); drOil["mncye"] = Convert.ToDouble(strArray[5]) + Convert.ToDouble(strArray[4]); dtOil.Rows.Add(drOil); } } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } } } strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); } } sr.Close(); fs.Close(); }
/// <summary> /// 读取示踪剂文件 /// </summary> public void GetTracer(string strPath, string strTrace) { FileStream fs = new FileStream(strPath, FileMode.Open); StreamReader sr = new StreamReader(fs); try { GetTraceJH gtj = new GetTraceJH(); DataTable dtTracerJH = gtj.GetTraceJHMethod(strTrace); DateUtil du = new DateUtil(); //string strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null)); //string strEndDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1)); string strReadLine; string strJH = string.Empty; string strDate = string.Empty; string strTracer = string.Empty; bool isWell = false; bool isRead = false; bool isWater = false; bool isDate = false; List <TracerModel> lstTM = new List <TracerModel>(); List <OilModel> lstOilM = new List <OilModel>(); List <WaterModel> lstWaterM = new List <WaterModel>(); DataTable dtOil = ListToDataTableUtil.ListToDataTable(lstOilM); DataTable dtWater = ListToDataTableUtil.ListToDataTable(lstWaterM); DataTable dtTracer = ListToDataTableUtil.ListToDataTable(lstTM); strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); string trim = strReadLine.Trim(); while (strReadLine != null) { trim = strReadLine.Trim(); string[] strArray = Regex.Split(trim, @"\s+"); if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT")))) { strDate = strArray[strArray.Length - 1]; //isDate = true; //if (strDate.Equals(strStartDate)) //{ // isDate = true; //} if (strDate.Equals("(1-NOV-2014)")) { isDate = true; } //if (strDate.Equals(strEndDate)) //{ // isDate = false; // break; //} } if (isDate) { if (strArray[0].Equals("TRACER") && strArray.Count() == 6 && strArray[5].Equals("PASSIVE") && strArray[3].Equals("WATER") && strArray[4].Equals("PHASE")) { DataRow[] drTracer = dtTracerJH.Select("trace = '" + strArray[2] + "'"); { if (drTracer.Count() > 0) { strTracer = drTracer[0]["smjh"].ToString(); } } } if (((strArray.Count() == 11) && strArray[3].Equals("PROD")) || ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) || ((strArray.Count() == 10) && strArray[0].Equals("BLOCK"))) { if ((strArray.Count() == 11) && strArray[3].Equals("PROD")) { isWater = false; } else if ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) { isWater = true; } if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (isWater) { /* * if (!strArray[4].Equals("SHUT")) * { * //if (Convert.ToDouble(strArray[4]) > 0) * //{ * DataRow drTracer = dtTracer.NewRow(); * drTracer["jhy"] = ""; * drTracer["jhs"] = strJH; * * drTracer["mncs"] = Convert.ToDouble(strArray[4]); * drTracer["szj"] = strTracer; * drTracer["szjnd"] = Convert.ToDouble(strArray[7]); * drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); * drTracer["x"] = Convert.ToInt32(strArray[1]); * drTracer["y"] = Convert.ToInt32(strArray[2]); * drTracer["k"] = Convert.ToInt32(strArray[3]); * dtTracer.Rows.Add(drTracer); * // } * } * else * { * DataRow drTracer = dtTracer.NewRow(); * drTracer["jhy"] = ""; * drTracer["jhs"] = strJH; * * drTracer["mncs"] = Convert.ToDouble(strArray[5]); * drTracer["szj"] = strTracer; * drTracer["szjnd"] = Convert.ToDouble(strArray[8]); * drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); * drTracer["x"] = Convert.ToInt32(strArray[1]); * drTracer["y"] = Convert.ToInt32(strArray[2]); * drTracer["k"] = Convert.ToInt32(strArray[3]); * dtTracer.Rows.Add(drTracer); * } */ } else { if (!strArray[4].Equals("SHUT")) { //if (Convert.ToDouble(strArray[5]) > 0) //{ DataRow drTracer = dtTracer.NewRow(); drTracer["jhy"] = strJH; drTracer["jhs"] = ""; drTracer["mncs"] = Convert.ToDouble(strArray[5]); drTracer["szj"] = strTracer; drTracer["szjnd"] = Convert.ToDouble(strArray[7]); drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); drTracer["x"] = Convert.ToInt32(strArray[1]); drTracer["y"] = Convert.ToInt32(strArray[2]); drTracer["k"] = Convert.ToInt32(strArray[3]); dtTracer.Rows.Add(drTracer); //} } else { DataRow drTracer = dtTracer.NewRow(); drTracer["jhy"] = strJH; drTracer["jhs"] = ""; drTracer["mncs"] = Convert.ToDouble(strArray[6]); drTracer["szj"] = strTracer; drTracer["szjnd"] = Convert.ToDouble(strArray[8]); drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); drTracer["x"] = Convert.ToInt32(strArray[1]); drTracer["y"] = Convert.ToInt32(strArray[2]); drTracer["k"] = Convert.ToInt32(strArray[3]); dtTracer.Rows.Add(drTracer); } } strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } } else { isWell = false; } } } else { if (trim.Equals("INJECTION REPORT")) { isRead = true; isWater = true; } else if (trim.Equals("PRODUCTION REPORT")) { isRead = true; isWater = false; } else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS")) { isRead = false; } if (isRead) { trim = strReadLine.Trim(); strArray = Regex.Split(trim, @"\s+"); if (isWater) { if ((strArray.Count() >= 12) && (strArray.Count() <= 13)) { if (strArray.Count() == 12 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { DataRow drWater = dtWater.NewRow(); drWater["jh"] = strJH; if (Convert.ToDouble(strArray[5]) < 0) { drWater["rzsl"] = 0; } else { drWater["rzsl"] = Convert.ToDouble(strArray[5]); } drWater["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); drWater["x"] = Convert.ToInt32(strArray[1]); drWater["y"] = Convert.ToInt32(strArray[2]); drWater["bhp"] = Convert.ToDouble(strArray[8]); drWater["k"] = Convert.ToInt32(strArray[3]); dtWater.Rows.Add(drWater); } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } else { if (strArray.Count() >= 16) { if (strArray.Count() == 16 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { DataRow drOil = dtOil.NewRow(); drOil["jh"] = strJH; if (Convert.ToDouble(strArray[7]) < 0) { drOil["rcyl1"] = 0; } else { drOil["rcyl1"] = Convert.ToDouble(strArray[7]); } drOil["hs"] = Convert.ToDouble(strArray[8]); drOil["rcsl"] = Convert.ToDouble(strArray[8]) * Convert.ToDouble(drOil["rcyl1"]); drOil["rcyl"] = Convert.ToDouble(drOil["rcyl1"]) * (1 - Convert.ToDouble(strArray[8])); drOil["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM"); drOil["x"] = Convert.ToInt32(strArray[1]); drOil["y"] = Convert.ToInt32(strArray[2]); drOil["bhp"] = Convert.ToDouble(strArray[11]); drOil["k"] = Convert.ToInt32(strArray[3]); dtOil.Rows.Add(drOil); } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } } } } strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); } //break; } ConnDatabaseUtil cdu = new ConnDatabaseUtil(); string strTableName = "T_WELL_OIL"; string strSQL = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'"; DataTable dtExist = cdu.SelectDatabase(strSQL); if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0) { strSQL = "drop table " + strTableName.ToUpper(); cdu.CreateOrDeleteDatabase(strSQL); } strSQL = "create table " + strTableName.ToUpper() + " (jh VARCHAR2(16), ny VARCHAR2(6), x NUMBER(3), y NUMBER(3), k NUMBER(2), rcsl NUMBER(17, 2), rcyl NUMBER(17, 2), rcyl1 NUMBER(17, 2), hs NUMBER(17, 3), bhp NUMBER(17, 2))"; cdu.CreateOrDeleteDatabase(strSQL); cdu.InsertDatabase(dtOil, strTableName.ToUpper()); strTableName = "T_WELL_WATER"; strSQL = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'"; dtExist = cdu.SelectDatabase(strSQL); if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0) { strSQL = "drop table " + strTableName.ToUpper(); cdu.CreateOrDeleteDatabase(strSQL); } strSQL = "create table " + strTableName.ToUpper() + " (jh VARCHAR2(16), ny VARCHAR2(6), x NUMBER(3), y NUMBER(3), k NUMBER(2), rzsl NUMBER(17, 2), bhp NUMBER(17, 2))"; cdu.CreateOrDeleteDatabase(strSQL); cdu.InsertDatabase(dtWater, strTableName.ToUpper()); strTableName = "T_WELL_TRACER"; strSQL = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'"; dtExist = cdu.SelectDatabase(strSQL); if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0) { strSQL = "drop table " + strTableName.ToUpper(); cdu.CreateOrDeleteDatabase(strSQL); } strSQL = "create table " + strTableName.ToUpper() + " (jhy VARCHAR2(16), jhs VARCHAR2(16),szj VARCHAR2(16), szjnd NUMBER(17, 5), ny VARCHAR2(6), x NUMBER(3), y NUMBER(3), k NUMBER(2), mncs NUMBER(17, 2))"; cdu.CreateOrDeleteDatabase(strSQL); cdu.InsertDatabase(dtTracer, strTableName.ToUpper()); } catch (Exception) { } finally { sr.Close(); fs.Close(); } }
public void get() { List <ResultModel> lstRm = new List <ResultModel>(); dtResult = ListToDataTableUtil.ListToDataTable(lstRm); DataTable dtYJ = cdu.SelectDatabase("select a.jh, a.k, (a.rcyl-b.rcyl) cz from yj a, yj b where a.ny='201412' and b.ny = '201509' and a.jh = b.jh and a.k = b.k and(a.rcyl-b.rcyl)> 0 and a.jh in ('G147-50','G153-543','N1-D1-140','Z9-B42','Z10-B039','Z80-S247','Z80-S249','Z82-246','Z82-S257','Z91-25','Z91-S246','Z91-S22','Z10-B139','Z92-S255','ZD9-39','ZD9-40','ZD9-141','ZD-S137','ZD10-40','ZD10-S37','ZD10-S42','ZD10-S143')"); DataTable dtNY = cdu.SelectDatabase("select distinct ny from yj where ny >='201412' order by ny"); for (int m = 0; m < dtNY.Rows.Count; m++) { for (int i = 0; i < dtYJ.Rows.Count; i++) { DataTable dtSJYJH = cdu.SelectDatabase("select * from dyjh where smjh = '" + dtYJ.Rows[i]["jh"] + "'"); if (dtSJYJH.Rows.Count > 0) { DataTable dtLtjhs = cdu.SelectDatabase("select * from ltk where jh = '" + dtSJYJH.Rows[0]["sjjh"] + "'"); if (dtLtjhs.Rows.Count > 0) { int dbjs = Convert.ToInt32(dtLtjhs.Rows[0]["dbjs"]); for (int j = 1; j <= dbjs; j++) { DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'"); if (dtSMSJH.Rows.Count > 0) { DataTable dtZSL = cdu.SelectDatabase("select jh, ny, k, rzsl from sj where jh= '" + dtSMSJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "' and K = " + dtYJ.Rows[i]["K"]); if (dtZSL.Rows.Count > 0) { //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]); //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]); DataRow drResult = dtResult.NewRow(); drResult["油井"] = dtYJ.Rows[i]["jh"]; drResult["水井"] = dtSMSJH.Rows[0]["smjh"]; drResult["日期"] = dtNY.Rows[m]["ny"]; drResult["层位"] = dtYJ.Rows[i]["K"]; drResult["注入量"] = dtZSL.Rows[0]["rzsl"]; dtResult.Rows.Add(drResult); } } } } else { for (int j = 1; j <= connNumber; j++) { string strColumnName = "DBJH" + j; dtLtjhs = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtSJYJH.Rows[0]["sjjh"] + "'"); foreach (DataRow drLtjhs in dtLtjhs.Rows) { DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhs["jh"] + "'"); if (dtSMSJH.Rows.Count > 0) { DataTable dtZSL = cdu.SelectDatabase("select jh, ny, k, rzsl from sj where jh= '" + dtSMSJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "' and K = " + dtYJ.Rows[i]["K"]); if (dtZSL.Rows.Count > 0) { DataRow drResult = dtResult.NewRow(); drResult["油井"] = dtYJ.Rows[i]["jh"]; drResult["水井"] = dtSMSJH.Rows[0]["smjh"]; drResult["日期"] = dtNY.Rows[m]["ny"]; drResult["层位"] = dtYJ.Rows[i]["K"]; drResult["注入量"] = dtZSL.Rows[0]["rzsl"]; dtResult.Rows.Add(drResult); } } } } } } } } }
public void GetLTOil() { List <ResultModel> lstRm = new List <ResultModel>(); dtResult = ListToDataTableUtil.ListToDataTable(lstRm); double dblHs = 0; double dblSumRcyl = 0; double dblSumRcsl = 0; DataTable dtNY = cdu.SelectDatabase("select distinct ny from yj where ny >='201412' order by ny"); for (int m = 0; m < dtNY.Rows.Count; m++) { DataTable dtWaterJH = cdu.SelectDatabase("select distinct jh from sj where ny = '" + dtNY.Rows[m]["ny"] + "'"); for (int i = 0; i < dtWaterJH.Rows.Count; i++) { DataTable dtSJSJH = cdu.SelectDatabase("select * from dyjh where smjh = '" + dtWaterJH.Rows[i]["jh"] + "'"); if (dtSJSJH.Rows.Count > 0) { DataTable dtLtjhy = cdu.SelectDatabase("select * from ltk where jh = '" + dtSJSJH.Rows[0]["sjjh"] + "'"); if (dtLtjhy.Rows.Count > 0) { int dbjs = Convert.ToInt32(dtLtjhy.Rows[0]["dbjs"]); for (int j = 1; j <= dbjs; j++) { DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhy.Rows[0]["dbjh" + j] + "'"); if (dtSMYJH.Rows.Count > 0) { DataTable dtSum = cdu.SelectDatabase("select jh, ny, sum(rcyl) as rcyl, sum(rcsl) as rcsl from YJ t group by jh, ny having jh= '" + dtSMYJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "'"); if (dtSum.Rows.Count > 0) { //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]); //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]); dblSumRcyl = Convert.ToDouble(dtSum.Rows[0]["rcyl"]); dblSumRcsl = Convert.ToDouble(dtSum.Rows[0]["rcsl"]); if ((dblSumRcsl + dblSumRcyl) != 0) { dblHs = dblSumRcsl / (dblSumRcsl + dblSumRcyl); } else { dblHs = 0; } DataRow drResult = dtResult.NewRow(); drResult["油井"] = dtSMYJH.Rows[0]["smjh"]; drResult["水井"] = dtWaterJH.Rows[i]["jh"]; drResult["日期"] = dtNY.Rows[m]["ny"]; drResult["产油"] = dblSumRcyl; drResult["含水"] = dblHs; drResult["产液"] = dblSumRcsl + dblSumRcyl; dtResult.Rows.Add(drResult); dblSumRcsl = 0; dblSumRcyl = 0; } } } } else { for (int j = 1; j <= connNumber; j++) { string strColumnName = "DBJH" + j; dtLtjhy = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtSJSJH.Rows[0]["sjjh"] + "'"); foreach (DataRow drLtjhy in dtLtjhy.Rows) { DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhy["jh"] + "'"); if (dtSMYJH.Rows.Count > 0) { DataTable dtSum = cdu.SelectDatabase("select jh, ny, sum(rcyl) as rcyl, sum(rcsl) as rcsl from YJ t group by jh, ny having jh= '" + dtSMYJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "'"); if (dtSum.Rows.Count > 0) { //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]); //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]); dblSumRcyl = Convert.ToDouble(dtSum.Rows[0]["rcyl"]); dblSumRcsl = Convert.ToDouble(dtSum.Rows[0]["rcsl"]); if ((dblSumRcsl + dblSumRcyl) != 0) { dblHs = dblSumRcsl / (dblSumRcsl + dblSumRcyl); } else { dblHs = 0; } DataRow drResult = dtResult.NewRow(); drResult["水井"] = dtWaterJH.Rows[i]["jh"]; drResult["油井"] = dtSMYJH.Rows[0]["smjh"]; drResult["日期"] = dtNY.Rows[m]["ny"]; drResult["产油"] = dblSumRcyl; drResult["含水"] = dblHs; drResult["产液"] = dblSumRcsl + dblSumRcyl; dtResult.Rows.Add(drResult); dblSumRcsl = 0; dblSumRcyl = 0; } } } } } dblSumRcsl = 0; dblSumRcyl = 0; } } } }
public void GetLTJInf(string strDate) { DataTable dtOil = new DataTable(); DataTable dtWater = new DataTable(); List <ResultModel> lstRm = new List <ResultModel>(); dtResult = ListToDataTableUtil.ListToDataTable(lstRm); dtOil = cdu.SelectDatabase("select * from yjjh"); for (int i = 0; i < dtOil.Rows.Count; i++) { //DataTable dtSMYJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + dtOil.Rows[i]["jh"] + "'"); DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtOil.Rows[i]["jh"] + "'"); if (dtSMYJH.Rows.Count > 0) { DataRow[] drJHY = LocationDAL.dtSK.Select("jh = '" + dtSMYJH.Rows[0]["smjh"] + "'"); foreach (DataRow dr in drJHY) { DataTable dtLtjhs = cdu.SelectDatabase("select * from ltk where jh = '" + dtOil.Rows[i]["jh"] + "'"); if (dtLtjhs.Rows.Count > 0) { int dbjs = Convert.ToInt32(dtLtjhs.Rows[0]["dbjs"]); for (int j = 1; j <= dbjs; j++) { DataTable dtIsSJ = cdu.SelectDatabase("select * from sjjh where jh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'"); if (dtIsSJ.Rows.Count > 0) { //DataTable dtSMSJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'"); DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'"); if (dtSMSJH.Rows.Count > 0) { WellModel jhs = ld.GetSingleLocation(dtSMSJH.Rows[0]["smjh"].ToString(), Convert.ToInt32(dr["k"])); GetLTOilJH(jhs, strDate, dtLtjhs.Rows[0]["dbjh" + j].ToString()); } } } } else { for (int j = 1; j <= connNumber; j++) { string strColumnName = "DBJH" + j; dtLtjhs = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtOil.Rows[i]["jh"] + "'"); foreach (DataRow drLtjhs in dtLtjhs.Rows) { DataTable dtIsSJ = cdu.SelectDatabase("select * from sjjh where jh = '" + drLtjhs["jh"] + "'"); if (dtIsSJ.Rows.Count > 0) { //DataTable dtSMSJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + drLtjhs["jh"] + "'"); DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhs["jh"] + "'"); if (dtSMSJH.Rows.Count > 0) { WellModel jhs = ld.GetSingleLocation(dtSMSJH.Rows[0]["smjh"].ToString(), Convert.ToInt32(dr["k"])); GetLTOilJH(jhs, strDate, drLtjhs["jh"].ToString()); } } } } } } } GC.Collect(); } try { ConnDatabaseUtil cdu = new ConnDatabaseUtil(); string strTableName = "T_WELL_ENDFACTOR"; string strSQL = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'"; DataTable dtExist = cdu.SelectDatabase(strSQL); if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0) { strSQL = "drop table " + strTableName.ToUpper(); cdu.CreateOrDeleteDatabase(strSQL); } strSQL = "create table " + strTableName.ToUpper() + " (油井 VARCHAR2(16), 日期 VARCHAR2(6), 层位 NUMBER(2), 水井 VARCHAR2(16), 平均剩余储量 NUMBER(17, 10), 平均圧力 NUMBER(17, 10), 平均含油饱和度 NUMBER(17, 10))"; cdu.CreateOrDeleteDatabase(strSQL); cdu.InsertDatabase(dtResult, strTableName.ToUpper()); } catch (Exception) { } }
public void GetTracer(string strPath, string strTrace) { GetTraceJH gtj = new GetTraceJH(); DataTable dtTracerJH = gtj.GetTraceJHMethod(strTrace); DateUtil du = new DateUtil(); string strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null)); string strEndDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1)); string strReadLine; string strJH = string.Empty; string strDate = string.Empty; string strTracer = string.Empty; bool isWell = false; bool isRead = false; bool isWater = false; bool isDate = false; FileStream fs = new FileStream(strPath, FileMode.Open); StreamReader sr = new StreamReader(fs); WellModel wm; List <WellModel> lstWM = new List <WellModel>(); List <WellModel> lstOilM = new List <WellModel>(); List <WellModel> lstWaterM = new List <WellModel>(); strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); string trim = strReadLine.Trim(); while (strReadLine != null) { trim = strReadLine.Trim(); string[] strArray = Regex.Split(trim, @"\s+"); if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT")))) { strDate = strArray[strArray.Length - 1]; if (strDate.Equals(strStartDate)) { isDate = true; } if (strDate.Equals(strEndDate)) { isDate = false; break; } } if (isDate) { if (strArray[0].Equals("TRACER") && strArray.Count() == 6 && strArray[5].Equals("PASSIVE") && strArray[3].Equals("WATER") && strArray[4].Equals("PHASE")) { DataRow[] drTracer = dtTracerJH.Select("trace = '" + strArray[2] + "'"); { if (drTracer.Count() > 0) { strTracer = drTracer[0]["smjh"].ToString(); } } } if (((strArray.Count() == 11) && strArray[3].Equals("PROD")) || ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) || ((strArray.Count() == 10) && strArray[0].Equals("BLOCK"))) { if ((strArray.Count() == 11) && strArray[3].Equals("PROD")) { isWater = false; } else if ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) { isWater = true; } if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { wm = new WellModel(); if (isWater) { if (!strArray[4].Equals("SHUT")) { if (Convert.ToDouble(strArray[4]) > 0) { wm.jhy = ""; wm.jhs = strJH; wm.mncs = Convert.ToDouble(strArray[4]); wm.szj = strTracer; wm.szjnd = Convert.ToDouble(strArray[7]); wm.date = strDate; wm.dtDate = du.TextDateStringCovertToDateTime(strDate); wm.x = Convert.ToInt32(strArray[1]); wm.y = Convert.ToInt32(strArray[2]); wm.k = Convert.ToInt32(strArray[3]); lstWM.Add(wm); } } } else { if (!strArray[4].Equals("SHUT")) { if (Convert.ToDouble(strArray[5]) > 0) { wm.jhy = strJH; wm.jhs = ""; wm.mncs = Convert.ToDouble(strArray[5]); wm.szj = strTracer; wm.szjnd = Convert.ToDouble(strArray[7]); wm.date = strDate; wm.dtDate = du.TextDateStringCovertToDateTime(strDate); wm.x = Convert.ToInt32(strArray[1]); wm.y = Convert.ToInt32(strArray[2]); wm.k = Convert.ToInt32(strArray[3]); lstWM.Add(wm); } } } strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } } else { isWell = false; } } } else { if (trim.Equals("INJECTION REPORT")) { isRead = true; isWater = true; } else if (trim.Equals("PRODUCTION REPORT")) { isRead = true; isWater = false; } else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS")) { isRead = false; } if (isRead) { trim = strReadLine.Trim(); strArray = Regex.Split(trim, @"\s+"); if (isWater) { if ((strArray.Count() >= 12) && (strArray.Count() <= 13)) { if (strArray.Count() == 12 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { wm = new WellModel(); wm.date = strDate; wm.dtDate = du.TextDateStringCovertToDateTime(strDate); wm.jhs = strJH; wm.x = Convert.ToInt32(strArray[1]); wm.y = Convert.ToInt32(strArray[2]); wm.k = Convert.ToInt32(strArray[3]); if (Convert.ToDouble(strArray[5]) > 0) { wm.mncs = Convert.ToDouble(strArray[5]); lstWaterM.Add(wm); } } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } else { if (strArray.Count() >= 16) { if (strArray.Count() == 16 || strArray[4].Equals("SHUT")) { if (strArray[0].Length > 0) { if (!strArray[0].Equals("BLOCK")) { strJH = strArray[0]; } isWell = true; if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT")) { isWell = false; } while (isWell) { strArray = Regex.Split(trim, @"\s+"); if (strArray[0].Equals("BLOCK")) { if (!strArray[4].Equals("SHUT")) { wm = new WellModel(); wm.date = strDate; wm.dtDate = du.TextDateStringCovertToDateTime(strDate); wm.jhy = strJH; wm.x = Convert.ToInt32(strArray[1]); wm.y = Convert.ToInt32(strArray[2]); wm.k = Convert.ToInt32(strArray[3]); if (Convert.ToDouble(strArray[5]) < 0) { wm.mncs = 0; } else { wm.mncs = Convert.ToDouble(strArray[5]); } if (Convert.ToDouble(strArray[4]) > 0) { wm.mncy = Convert.ToDouble(strArray[4]); wm.mncye = wm.mncy + wm.mncs; lstOilM.Add(wm); } } strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " "); trim = strReadLine.Trim(); } else { isWell = false; } } } } } } } } } strReadLine = sr.ReadLine(); if (strReadLine != null) { strReadLine = strReadLine.Replace(":", " ").Replace(",", " "); } //break; } dtTracer.Merge(ListToDataTableUtil.ListToDataTable(lstWM)); dtOil = ListToDataTableUtil.ListToDataTable(lstOilM); dtWater = ListToDataTableUtil.ListToDataTable(lstWaterM); sr.Close(); fs.Close();; }