calpuff-client-Form1.cs
来源:互联网 发布:mac分区失败 发生错误 编辑:程序博客网 时间:2024/05/23 15:05
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;// 数据库dllusing MySql.Data.MySqlClient;using System.IO;namespace ClientV1._1{ public partial class Form1 : Form { public static string SrcPath = ""; // db Part public static string dbIp =""; public static string dbName = ""; public static string dbUser = ""; public static string dbPasswd = ""; public static string modelname = ""; public static string startdate = ""; public static string enddate = ""; public static string nx = ""; public static string ny = ""; public static string xrefkm = ""; public static string yrefkm = ""; public static string dgridkm = ""; public static string identifier = ""; // for terrel identifier public static string gtopo30=""; // for ctgproc identifier public static string glazas=""; public const int maxFileNum = 10000; //#MaxLimit public string[] terrelFiles = new string[maxFileNum], ctgprocFiles = new string[maxFileNum]; // 取出最后的文件名 public string[] terrelFileNames = new string[maxFileNum], ctgprocFileNames = new string[maxFileNum]; public void init() { modelname = ""; startdate = ""; enddate = ""; nx = ""; ny = ""; xrefkm = ""; yrefkm = ""; dgridkm = ""; identifier = ""; gtopo30=""; glazas=""; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; textBox6.Text = ""; comboBox1.SelectedIndex = -1; comboBox2.SelectedIndex = -1; SrcPath =""; label13.Text = "Selected: C:\\" ; } // 四个基本参数的合法性检查 public static bool ParamValidate() { if (xrefkm == "") { MessageBox.Show("Please Input XREFKM"); return false; } if (yrefkm == "") { MessageBox.Show("Please Input YREFKM"); return false; } if (nx == "") { MessageBox.Show("Please Input NX"); return false; } if (ny == "") { MessageBox.Show("Please Input NY"); return false; } if (dgridkm == "") { MessageBox.Show("Please Input DGRIDKM"); return false; } // 合法性检查 至少是double try { double.Parse(xrefkm); } catch { MessageBox.Show("XREFKM should be a float number"); return false; } try { double.Parse(yrefkm); } catch { MessageBox.Show("YREFKM should be a float number"); return false; } try { double.Parse(nx); } catch { MessageBox.Show("NX should be a float number"); return false; } try { double.Parse(ny); } catch { MessageBox.Show("NY should be a float number"); return false; } try { double.Parse(dgridkm); } catch { MessageBox.Show("DGRIDKM should be a float number"); return false; } // 全都没问题 返回合法 return true; } // 非静态资源 this调用即可 public bool DateAssignAndCheck() { dateTimePicker1.Format=DateTimePickerFormat.Custom; dateTimePicker2.Format=DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat="yyyy-MM-dd"; dateTimePicker2.CustomFormat="yyyy-MM-dd"; string year1 = dateTimePicker1.Value.Year.ToString(); string month1 = dateTimePicker1.Value.Month.ToString(); // 规范形式 if(dateTimePicker1.Value.Month<10) { month1 = "0" + month1; } string day1 = dateTimePicker1.Value.Day.ToString(); if (dateTimePicker1.Value.Day < 10) { day1 = "0" + day1; } string year2 = dateTimePicker1.Value.Year.ToString(); string month2 = dateTimePicker1.Value.Month.ToString(); // 规范形式 if (dateTimePicker2.Value.Month < 10) { month2 = "0" + month2; } string day2 = dateTimePicker2.Value.Day.ToString(); if (dateTimePicker2.Value.Day < 10) { day2 = "0" + day2; } startdate = year1 + "-" + month1 + "-" + day1; enddate = year2 + "-" + month2 + "-" + day2; int result = dateTimePicker1.Value.Date.CompareTo(dateTimePicker2.Value.Date); if (result > 0) return false; else return true; } public static bool IdentifierValidate() { int length = identifier.Length; for(int i=0;i<length;i++) { if (identifier[i] <= 'Z' && identifier[i] >= 'A') continue; if (identifier[i] <= 'z' && identifier[i] >= 'a') continue; if (identifier[i] <= '9' && identifier[i] >= '0') continue; if (identifier[i] == '_') continue; if (identifier[i] == '@') continue; return false; } return true; } public static bool DbTest() { MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); // 到时候换成一个公网IP string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; try { conn.Open(); } catch { MessageBox.Show("Database Connection Error"); return false; } return true; } public bool ParamAssignAndCheck() { xrefkm = textBox1.Text; yrefkm = textBox2.Text; nx = textBox3.Text; ny = textBox4.Text; dgridkm = textBox5.Text; identifier = textBox6.Text; if (ParamValidate() == false) { return false; } if (DbTest() == false) { return false; } // 日期单独检查 if (identifier == "") { MessageBox.Show("Identifier Should Be Non-empty"); return false; } // identifier 检查 需要连接数据库 if (IdentifierValidate() == false) { MessageBox.Show("Identifier Should Consist Of 'A-Z','a'-'z' '@' and '_'"); return false; } // 检查过关 return true; } public static int Existed(string _identifier) { MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; try { conn.Open(); } catch { MessageBox.Show("Database Connection Error"); return -1; // 代表DB 连接故障 } MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; cmd.CommandText = "select * from t_calpuf_conf where identifier=\"" + _identifier + "\""; MySqlDataReader reader = cmd.ExecuteReader(); // 先检查identifier是否已经存在 if (reader.HasRows) { conn.Close(); return 1; } else { conn.Close(); return 0; } // 关联新的cmd conn需要重启 } public Form1() { InitializeComponent(); Point point = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - this.Size.Width / 2, Screen.PrimaryScreen.WorkingArea.Height / 2 - this.Size.Height / 2);//窗体位置 this.StartPosition = FormStartPosition.Manual; this.Location = point; // 导入配置文件 loadIni(); } // 选择文件 // db Conf private void button8_Click(object sender, EventArgs e) { ServerConf form = new ServerConf(); Point point = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - form.Size.Width / 2, Screen.PrimaryScreen.WorkingArea.Height / 2 - form.Size.Height / 2);//窗体位置 form.StartPosition = FormStartPosition.Manual; form.Location = point; form.ShowDialog(); } public void enable() { this.Enabled = true; } // 从另一个表里 // Refresh terrel & ctgproc files private void button9_Click(object sender, EventArgs e) { MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; try { conn.Open(); } catch { MessageBox.Show("Database Connection Error"); return; } MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; cmd.CommandText = "select path,type from t_geo_file"; System.Data.Common.DbDataReader reader = cmd.ExecuteReader(); if(!reader.HasRows) { MessageBox.Show("No GeoFiles Are Available,Please Contact The Server Provider"); return; } int indexOfTerrel = 0; int indexOfCtgproc = 0; // 每个task while (reader.Read()) { string path = reader.GetString(reader.GetOrdinal("path")); // 生成inp 文件 string name = reader.GetString(reader.GetOrdinal("type")); if (name == "terrel") terrelFiles[indexOfTerrel++] = path; else ctgprocFiles[indexOfCtgproc++] = path; } if (indexOfTerrel==0) { MessageBox.Show("No Terrel Files Are Available,Please Contact The Server Provider"); return; } if (indexOfCtgproc == 0) { MessageBox.Show("No Ctgproc Files Are Available,Please Contact The Server Provider"); return; } // 将文件名作为数据源 for (int i = 0; i < indexOfTerrel;i++ ) { terrelFileNames[i] = getName(terrelFiles[i]); } for (int i = 0; i < indexOfCtgproc;i++ ) { ctgprocFileNames[i] = getName(ctgprocFiles[i]); } cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 // 更新数据源 comboBox1.DataSource = terrelFileNames; comboBox2.DataSource = ctgprocFileNames; MessageBox.Show("Update Successful"); } // 【Run Terrel】 private void button5_Click(object sender, EventArgs e) { // 首先更新后台记录的一些参数 if (this.ParamAssignAndCheck() == false) { // 提示已经弹窗过了 return; } // 是否已经用过此Identifier if(Existed(identifier)==1) { MessageBox.Show("This Identifier Has Been Occupied,Please Choose Another"); return; } //这才是最普通的 else { // 本模型特殊的 if (comboBox1.SelectedIndex < 0) { MessageBox.Show("Please select a GTOPO30 File"); return; } gtopo30= terrelFiles[comboBox1.SelectedIndex]; // 四个基本参数验证,数据库,文件,日期都通过 开始插入数据 MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; // 关联新的cmd conn需要重启 cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,xrefkm,yrefkm,nx,ny,dgridkm,identifier,modelname,gtopo30,done) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@5", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@6", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@7", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@8", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@9", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@10", MySql.Data.MySqlClient.MySqlDbType.Int32); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = xrefkm; cmd.Parameters[3].Value = yrefkm; cmd.Parameters[4].Value = nx; cmd.Parameters[5].Value = ny; cmd.Parameters[6].Value = dgridkm; cmd.Parameters[7].Value = identifier; cmd.Parameters[8].Value = "terrel"; cmd.Parameters[9].Value = gtopo30; cmd.Parameters[10].Value = 0; // 已经确认过可以连接了 cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 不成功时保留不抹掉 this.init(); } } // Run Ctgproc private void button6_Click(object sender, EventArgs e) { // 首先更新后台记录的一些参数 if (this.ParamAssignAndCheck() == false) { // 提示已经弹窗过了 return; } // 是否已经用过此Identifier if (Existed(identifier) == 1) { MessageBox.Show("This Identifier Has Been Occupied,Please Choose Another"); return; } //这才是最普通的 else { if (comboBox2.SelectedIndex < 0) { MessageBox.Show("Please select a GLAZAS File"); return; } glazas = ctgprocFiles[comboBox2.SelectedIndex]; MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; // 关联新的cmd conn需要重启 cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,xrefkm,yrefkm,nx,ny,dgridkm,identifier,modelname,glazas,done) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@5", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@6", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@7", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@8", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@9", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@10", MySql.Data.MySqlClient.MySqlDbType.Int32); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = xrefkm; cmd.Parameters[3].Value = yrefkm; cmd.Parameters[4].Value = nx; cmd.Parameters[5].Value = ny; cmd.Parameters[6].Value = dgridkm; cmd.Parameters[7].Value = identifier; cmd.Parameters[8].Value = "ctgproc"; cmd.Parameters[9].Value = glazas; cmd.Parameters[10].Value = 0; // 已经确认过可以连接了 cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 不成功时保留不抹掉 this.init(); } } // Run Makegeo--综合前一二两个模型 private void button3_Click(object sender, EventArgs e) { // 首先更新后台记录的一些参数 // Common if (this.ParamAssignAndCheck() == false) { // 提示已经弹窗过了 return; } // 是否已经用过此Identifier if (Existed(identifier) == 1) { MessageBox.Show("This Identifier Has Been Occupied,Please Choose Another"); return; } //这才是最普通的 else { // 本模型特殊的 if (comboBox1.SelectedIndex < 0) { MessageBox.Show("Please select a GTOPO30 File"); return; } gtopo30 = terrelFiles[comboBox1.SelectedIndex]; // 四个基本参数验证,数据库,文件,日期都通过 开始插入数据 if (comboBox2.SelectedIndex < 0) { MessageBox.Show("Please select a GLAZAS File"); return; } glazas = ctgprocFiles[comboBox2.SelectedIndex]; MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; // 关联新的cmd conn需要重启 cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,xrefkm,yrefkm,nx,ny,dgridkm,identifier,modelname,gtopo30,glazas,done) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@5", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@6", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@7", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@8", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@9", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@10", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@11", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = xrefkm; cmd.Parameters[3].Value = yrefkm; cmd.Parameters[4].Value = nx; cmd.Parameters[5].Value = ny; cmd.Parameters[6].Value = dgridkm; cmd.Parameters[7].Value = identifier; cmd.Parameters[8].Value = "makegeo"; cmd.Parameters[9].Value = gtopo30; cmd.Parameters[10].Value = glazas; cmd.Parameters[11].Value = 0; cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 不成功时保留不抹掉 this.init(); } } // Run calwrf -- 只需要选日期 private void button7_Click(object sender, EventArgs e) { // DateAssignAndCheck 包含判断与赋值 if (this.DateAssignAndCheck() == false) { MessageBox.Show("Date Selection Error"); return; } // 很特殊 因为不在ParamAssign里面 identifier = textBox6.Text; if(identifier=="") { MessageBox.Show("Identifier Should Be Non-empty"); return; } if (IdentifierValidate() == false) { MessageBox.Show("Identifier Should Consist Of 'A-Z','a'-'z' '@' and '_'"); return; } if (DbTest() == false) { return; } if (Existed(identifier) == 1) { MessageBox.Show("This Identifier Has Been Occupied,Please Choose Another"); return; } MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,identifier,modelname,done) values(@0,@1,@2,@3,@4)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.Int32); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = identifier; cmd.Parameters[3].Value = "calwrf"; cmd.Parameters[4].Value = 0; // 已经确认过可以连接了 cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 this.init(); } // Run calmet--需要calwrf的结果 还需要makegeo 而makegeo 依赖于terrel 和ctgproc private void button4_Click(object sender, EventArgs e) { // 需要选日期 if (DateAssignAndCheck() == false) { MessageBox.Show("Date Selection Error"); return ; } if (this.ParamAssignAndCheck() == false) { // 提示已经弹窗过了 return; } // 是否已经用过此Identifier if (Existed(identifier) == 1) { MessageBox.Show("This Identifier Has Been Occupied,Please Choose Another"); return; } //这才是最普通的 else { // 本模型特殊的 if (comboBox1.SelectedIndex < 0) { MessageBox.Show("Please select a GTOPO30 File"); return; } gtopo30 = terrelFiles[comboBox1.SelectedIndex]; // 四个基本参数验证,数据库,文件,日期都通过 开始插入数据 if (comboBox2.SelectedIndex < 0) { MessageBox.Show("Please select a GLAZAS File"); return; } glazas = ctgprocFiles[comboBox2.SelectedIndex]; MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; // 关联新的cmd conn需要重启 cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,xrefkm,yrefkm,nx,ny,dgridkm,identifier,modelname,gtopo30,glazas,done) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@5", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@6", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@7", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@8", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@9", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@10", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@11", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = xrefkm; cmd.Parameters[3].Value = yrefkm; cmd.Parameters[4].Value = nx; cmd.Parameters[5].Value = ny; cmd.Parameters[6].Value = dgridkm; cmd.Parameters[7].Value = identifier; cmd.Parameters[8].Value = "calmet"; cmd.Parameters[9].Value = gtopo30; cmd.Parameters[10].Value = glazas; cmd.Parameters[11].Value = 0; cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 不成功时保留不抹掉 this.init(); } } // Choose a file private void button2_Click_1(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false; // 单选 if (dialog.ShowDialog() == DialogResult.OK) { SrcPath = dialog.FileName; // 1 显示上传的文件路径 2 连接服务器将文件上传到blob里面去~ db端取出来 label13.Text = "Selected: "+SrcPath; } else { MessageBox.Show("No file is selected"); } } // Upload and Run calpuff private void button1_Click_1(object sender, EventArgs e) { if (SrcPath == "") { MessageBox.Show("Please Choose a File First"); return; } else { // 检查之前几个模型 提醒用户选择同样的Id,run之间的几个模型 // 将文件读入字节流 byte[] SrcBiFile = null; SrcBiFile = File.ReadAllBytes(SrcPath); //然后存到数据库里就行了~ 几乎是一样的 if (this.ParamAssignAndCheck() == false) { // 提示已经弹窗过了 return; } // 需要选日期 if (DateAssignAndCheck() == false) { MessageBox.Show("Date Selection Error"); return; } if (comboBox1.SelectedIndex < 0) { MessageBox.Show("Please select a GTOPO30 File"); return; } gtopo30 = terrelFiles[comboBox1.SelectedIndex]; if (comboBox2.SelectedIndex < 0) { MessageBox.Show("Please select a GLAZAS File"); return; } glazas = ctgprocFiles[comboBox2.SelectedIndex]; // 四个基本参数验证,数据库,文件,日期都通过 开始插入数据 MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8"; conn.ConnectionString = connStr; conn.Open(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; // 关联新的cmd conn需要重启 cmd.CommandText = "insert into t_calpuf_conf(startdate,enddate,xrefkm,yrefkm,nx,ny,dgridkm,identifier,modelname,srcfile,gtopo30,glazas,done) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12)"; cmd.Parameters.Add("@0", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@1", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@2", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@3", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@4", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@5", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@6", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@7", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@8", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@9", MySql.Data.MySqlClient.MySqlDbType.Blob); cmd.Parameters.Add("@10", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@11", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters.Add("@12", MySql.Data.MySqlClient.MySqlDbType.VarChar); cmd.Parameters[0].Value = startdate; cmd.Parameters[1].Value = enddate; cmd.Parameters[2].Value = xrefkm; cmd.Parameters[3].Value = yrefkm; cmd.Parameters[4].Value = nx; cmd.Parameters[5].Value = ny; cmd.Parameters[6].Value = dgridkm; cmd.Parameters[7].Value = identifier; cmd.Parameters[8].Value = "calpuff"; cmd.Parameters[9].Value = SrcBiFile; cmd.Parameters[10].Value = gtopo30; cmd.Parameters[11].Value = glazas; cmd.Parameters[12].Value = 0; // 已经确认过可以连接了 cmd.ExecuteNonQuery(); cmd.Dispose();//此处可以不用调用, conn.Close();// 离开 using 块, connection 会自行关闭 MessageBox.Show("Submit Successful"); // 提交一次任务之后初始化 this.init(); } } // 用于筛选文件名用 public static string getName(string path) { int index =0; int length=path.Length; for(int i=0;i<length;i++) { if (path[i] == '\\') index = i; } return path.Substring(index + 1, length - index - 1); } public static void loadIni() { string iniPath = System.Environment.CurrentDirectory + "\\" + "CalpuffModel.ini"; if (!File.Exists(iniPath)) { MessageBox.Show("CalpufModel.ini is missing ,please place it in " + iniPath); return; } // 先获取最大行~ int lineCnt = 0; FileStream fs = new FileStream(iniPath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); string tempStr = ""; while (tempStr != null) { tempStr = sr.ReadLine(); lineCnt++; } lineCnt--; // 有一位位移 string[] ini = new string[lineCnt + 100]; fs = new FileStream(iniPath, FileMode.Open, FileAccess.Read); sr = new StreamReader(fs); int index = 0; tempStr = ""; while (tempStr != null) { tempStr = sr.ReadLine(); ini[index++] = tempStr; } index--; // 此时index就是行数 // 这样做其实很麻烦的 完全可以一次性就申请多一点 但是既然现成的代码也有 就这样写吧 string[] key = new string[index]; string[] value = new string[index]; string[] keyAndValue = new string[100];// 2就够了 for (int i = 0; i < index; i++) { string curStr = ini[i]; int wordsCnt = 0; infoExtract(keyAndValue, ref wordsCnt, curStr); key[i] = keyAndValue[0]; value[i] = keyAndValue[1]; } // 有点枚举 但是数据规模比较小 for (int i = 0; i < index; i++) { string curKey = key[i]; string curValue = value[i]; if (curKey == "dbIp") dbIp = curValue; else if (curKey == "dbName") dbName = curValue; else if (curKey == "dbUser") dbUser = curValue; else if (curKey == "dbPasswd") dbPasswd = curValue; //else if (curKey == "ftpIp") ftpIp = curValue; //else if (curKey == "ftpUser") ftpUser = curValue; //else if (curKey == "ftpPasswd") ftpPasswd = curValue; //else if (curKey == "inpDir") inpDir = curValue; //else if (curKey == "exeDir") exeDir = curValue; //else if (curKey == "wrfoutDir") wrfoutDir = curValue; //else if (curKey == "outputDir") outputDir = curValue; //else if (curKey == "srcDir") srcDir = curValue; } sr.Close(); fs.Close(); } public static void infoExtract(string[] param, ref int tokenNum, string str) { str = str.Trim(); str += " "; int cnt = 0; while (str != " ") { for (int i = 0; i < str.Length; i++) { if (str[i] == ' ') { param[cnt++] = str.Substring(0, i); str = str.Substring(i, str.Length - i); str = str.Trim(); str += " "; // 为了最后一次推出循环 break; // 这个break 很关键 因为找到了就应该进入下一次循环了 } } } tokenNum = cnt; } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("http://calpuff.sinaapp.com"); } private void Form1_Load(object sender, EventArgs e) { } } // class definition} // namesapce
0 0
- calpuff-client-Form1.cs
- calpuff-server-Form1.cs
- calpuff-client-ServerConf.cs
- Calpuff-Server-GeoFile.cs
- calpuff-server-GeoFile.cs
- calpuff-server-ServerConf.cs
- 启动加速:精简Form1.Designer.cs - C#
- Form1
- form1
- Form1
- Client.designer.cs
- c#版本标准数独Form1.cs文件
- Calpuff-Webclient-index.php
- Calpuff-WebClient-webclient.php
- Form1.frm
- Form1.Designer
- menjin.Form1
- C# : Form1 => Form2 -> Form1
- calpuff-server-ServerConf.cs
- calpuff-server-Form1.cs
- 如何将jar包加入到Maven本地仓库
- jetty 内存溢出
- calpuff-client-ServerConf.cs
- calpuff-client-Form1.cs
- 真实的美国,是的
- 博登湖空难的令人痛心的管理者责任
- 深度优先搜索和广度优先搜索的比较与分析
- DFS与BFS的总结
- Red and Black---DFS深度优先算法
- 岁月不居,天道酬勤,业道酬精
- LeetCode(001) Two Sum (Java)
- 指针入门(四)