液体试剂自动配置系统.cs
来源:互联网 发布:刷酷狗星币软件 编辑:程序博客网 时间:2024/06/11 20:54
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 液体配置系统{ public partial class 液体配置系统 : Form { //其中myds为浏览列表的数据集,ds为新建方案的数据集,ds1为查看方案的数据集 public 液体配置系统() { InitializeComponent(); strconn = "Data Source=NJ6BWDH0T6FG8CY\\LIUZHU;Initial Catalog=reagent;Integrated Security=True"; strsql = "select id as'方案编号',prereagentid as '试剂编号' ,prereagent as '试剂名称',preamount as '试剂用量' from project where id = (select Max(id)+1 from remarks)"; this.myconn = new SqlConnection(strconn); this.da = new SqlDataAdapter(strsql, strconn); this.ds = new DataSet(); isupdated = false; myconn.Open(); string strsql10 = "select max(id) from remarks "; //找出最大的方案信息id SqlCommand cmd10 = new SqlCommand(strsql10, myconn); SqlDataReader reader10 = cmd10.ExecuteReader(); //读出最大的方案编号的值 while (reader10.Read()) { i = Convert.ToInt64(reader10[0]); } reader10.Close(); myconn.Close(); } private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e) //查看具体方案信息 { myconn.Close(); string i = dataGridView1.CurrentRow.Cells[0].Value.ToString(); long a = 0; a = Convert.ToInt64(i); if (a == 0) MessageBox.Show("请选择正确的方案查看"); else { long ID = a; ViewProject(ID); } } private void ViewProject(long id) { panel1.Show(); long b = id; //string strconn = "Data Source=NJ6BWDH0T6FG8CY\\LIUZHU;Initial Catalog=reagent;Integrated Security=True"; try { //SqlConnection conn = new SqlConnection(strconn); string strsql2 = "select * from remarks where id= '" + b + "'"; string strsql3 = "select finalamount from project where id='" + b + "'group by finalamount"; myconn.Open(); string strsql1 = "select pid as '方案id',prereagentid as '试剂编号' ,prereagent as '试剂名称',preamount as '试剂用量',id as'方案编号id' from project where id=" + b; da1 = new SqlDataAdapter(strsql1, strconn); ds1 = new DataSet(); da1.Fill(ds1,"data1"); //da1.MissingSchemaAction = MissingSchemaAction.AddWithKey; //以下显示方案编号 this.label10.Text = b.ToString(); dataGridView2.DataSource = ds1.Tables["data1"]; dataGridView2.Columns[0].Visible=false; dataGridView2.Columns[4].Visible = false; SqlCommand cmd2 = new SqlCommand(strsql2, myconn); SqlDataReader rd2 = cmd2.ExecuteReader(); while (rd2.Read()) { this.label12.Text = rd2[3].ToString(); this.textBox7.Text = rd2[1].ToString(); this.textBox6.Text = rd2[2].ToString(); this.textBox4.Text = rd2[4].ToString(); } rd2.Close(); SqlCommand cmd3 = new SqlCommand(strsql3, myconn); SqlDataReader rd3 = cmd3.ExecuteReader(); while (rd3.Read()) { this.textBox5.Text = rd3[0].ToString(); } rd3.Close(); myconn.Close(); dataGridView2.DataSource = ds1.Tables[0]; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void button4_Click(object sender, EventArgs e)//保存方案 { if(Convert.ToInt64(label10.Text.Trim().ToString())<=i) //查看方案的保存按钮 { try { myconn.Close(); myconn.Open(); //da1.MissingSchemaAction=MissingSchemaAction.AddWithKey; SqlCommandBuilder bd1 = new SqlCommandBuilder(da1); da1.DeleteCommand = bd1.GetDeleteCommand(); da1.UpdateCommand = bd1.GetUpdateCommand(); da1.Update(ds1.Tables["data1"]); MessageBox.Show("保存成功!"); dataGridView2.DataSource=ds1.Tables[0].DefaultView; myconn.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } else //新建方案的保存按钮 { try { myconn.Close(); myconn.Open(); SqlCommandBuilder bd = new SqlCommandBuilder(da); da.InsertCommand = bd.GetInsertCommand(); da.Update(ds.Tables["data"]); string strsql4 = "update project set finalreagent='" + this.textBox7.Text.Trim().ToString() + "',finalamount='" + this.textBox5.Text.Trim() + "' where id=(select MAX(id) from project)"; SqlCommand cmd4 = new SqlCommand(strsql4, myconn); cmd4.ExecuteNonQuery(); string strsql3 = "insert into remarks values('" + (i + 1) + "','" + this.textBox7.Text.Trim() + "','" + this.textBox6.Text.Trim() + "','" + DateTime.Now + "','" + this.textBox4.Text.Trim() + "')"; SqlCommand cmd3 = new SqlCommand(strsql3, myconn); cmd3.ExecuteNonQuery(); MessageBox.Show("方案" + (i + 1).ToString() + "添加成功!"); myconn.Close(); ViewProject(i+1); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } private void button2_Click_1(object sender, EventArgs e)//新建新方案 { try { myconn.Close(); myconn.Open(); ds.Clear(); textBox7.Text = ""; textBox5.Text = ""; textBox6.Text = ""; textBox4.Text = ""; da.Fill(ds, "data"); ds.Tables[0].Columns[0].DefaultValue = i + 1; label10.Text =( i + 1).ToString(); label12.Text = DateTime.Now.ToString(); dataGridView2.DataSource = ds.Tables[0]; dataGridView2.AutoGenerateColumns = false; myconn.Close(); panel1.Visible = true; dataGridView2.Columns[0].Visible = false; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void button1_Click(object sender, EventArgs e)//查找方案 { try { string str = textBox1.Text.Trim(); string sql1; string sql2; if (str != "") { int m = Convert.ToInt32(str); //MessageBox.Show(""+m);//m的值 sql1 = "select count(*) from remarks where finalreagent like'%" + textBox2.Text.Trim().ToString() + "%' and designer like'%" + textBox3.Text.Trim().ToString() + "%' and id =" + m + "";// 查询结果的条数 sql2 = "select * from remarks where finalreagent like'%" + textBox2.Text.Trim().ToString() + "%' and designer like'%" + textBox3.Text.Trim().ToString() + "%' and id=" + m + "";// 查询的结果列表 } else { sql1 = "select count(*) from remarks where finalreagent like'%" + textBox2.Text.Trim().ToString() + "%' and designer like'%" + textBox3.Text.Trim().ToString() + "%'";// 查询结果的条数 sql2 = "select * from remarks where finalreagent like'%" + textBox2.Text.Trim().ToString() + "%' and designer like'%" + textBox3.Text.Trim().ToString() + "%' " ;// 查询的结果列表 } SqlConnection myconn = new SqlConnection(strconn); myconn.Close(); myconn.Open(); SqlCommand cmd = new SqlCommand(sql1, myconn); int p = 0; p= (int)cmd.ExecuteScalar(); if (p>= 0) { SqlDataAdapter myda = new SqlDataAdapter(sql2, myconn); DataSet myds = new DataSet(); myda.Fill(myds, "remarks"); //此处remarks为myds数据集的名称 dataGridView1.Show(); dataGridView1.DataSource = myds.Tables[0]; myds.Tables[0].Columns[0].ColumnName = "方案编号"; myds.Tables[0].Columns[1].ColumnName = "配置试剂"; myds.Tables[0].Columns[2].ColumnName = "配置者"; myds.Tables[0].Columns[3].ColumnName = "配置时间"; myds.Tables[0].Columns[4].ColumnName = "备注"; } else MessageBox.Show("没有查找到相关数据!"); myconn.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void button3_Click(object sender, EventArgs e)//取消新建方案 { panel1.Visible = false; } private void 液体配置系统_Load(object sender, EventArgs e)//显示方案列表 { myconn.Close(); myconn.Open(); string sql = "select * from remarks"; SqlDataAdapter myda = new SqlDataAdapter(sql, myconn); DataSet myds = new DataSet(); myda.Fill(myds); //此处remarks为myds数据集的名称 dataGridView1.Show(); dataGridView1.DataSource = myds.Tables[0]; myds.Tables[0].Columns[0].ColumnName = "方案编号"; myds.Tables[0].Columns[1].ColumnName = "配置试剂"; myds.Tables[0].Columns[2].ColumnName = "配置者"; myds.Tables[0].Columns[3].ColumnName = "配置时间"; myds.Tables[0].Columns[4].ColumnName = "备注"; myconn.Close(); } private void button5_Click(object sender, EventArgs e)//浏览方案 { myconn.Close(); myconn.Open(); string sql = "select * from remarks"; SqlDataAdapter myda = new SqlDataAdapter(sql, myconn); DataSet myds = new DataSet(); myda.Fill(myds); //此处remarks为myds数据集的名称 dataGridView1.Show(); dataGridView1.DataSource = myds.Tables[0]; myds.Tables[0].Columns[0].ColumnName = "方案编号"; myds.Tables[0].Columns[1].ColumnName = "配置试剂"; myds.Tables[0].Columns[2].ColumnName = "配置人"; myds.Tables[0].Columns[3].ColumnName = "配置时间"; myds.Tables[0].Columns[4].ColumnName = "备注"; myconn.Close(); } private void dataGridView2_CellValueChanged(object sender, DataGridViewCellEventArgs e) //显示具体方案时,有改动的地方 { isupdated = true; } //以下为对某一具体方案时,对数据的增删改操作。 private void button6_Click(object sender, EventArgs e) //修改按钮 { dataGridView2.ReadOnly = false; MessageBox.Show("您可以在左边的表中直接修改数据"); } private void button7_Click(object sender, EventArgs e) //添加行 { this.button4.Visible = false; myconn.Close(); myconn.Open(); long p=0; string strsql11 = "select max(pid) from project"; SqlCommand sql11 = new SqlCommand(strsql11,myconn); SqlDataReader reader11 = sql11.ExecuteReader(); while (reader11.Read()) { p =Convert.ToInt64(reader11[0]); } dataGridView2.ReadOnly = false; ds1.Clear(); da1.Fill(ds1,"data1"); DataRow newrow = ds1.Tables[0].NewRow(); Int32 k = ds1.Tables[0].Rows.Count; MessageBox.Show(k.ToString()); newrow["方案id"] = (p + 1); newrow["试剂编号"] =1; newrow["试剂名称"] ="名称"; newrow["试剂用量"] =100; newrow["方案编号id"] = Convert.ToInt64(label10.Text.Trim().ToString()); ds1.Tables[0].Rows.InsertAt(newrow,k); SqlCommandBuilder bd1 = new SqlCommandBuilder(da1); da1.InsertCommand = bd1.GetInsertCommand(); da1.Update(ds1.Tables["data1"]); myconn.Close(); this.button4.Visible = false; } private void button9_Click(object sender, EventArgs e) //删除行 { try { int delrowindex = dataGridView2.CurrentRow.Index; MessageBox.Show(delrowindex.ToString()); this.dataGridView2.Rows.RemoveAt(delrowindex); } catch (Exception ex) { MessageBox.Show("请选对正确的行!"); } } private void button8_Click(object sender, EventArgs e) //配置液体 { long[] sid=new long[dataGridView2.Rows.Count]; double[] sweight=new double[dataGridView2.Rows.Count]; for (int i = 0; i < dataGridView2.Rows.Count; i++){ sid[i]=Convert.ToInt64(dataGridView2.Rows[i].Cells[1].Value.ToString()); sweight[i]=Convert.ToDouble(dataGridView2.Rows[i].Cells[3].Value.ToString()); //MessageBox.Show(sid[i].ToString()+" "+sweight[i].ToString());} does.does start = new does.does(sid,sweight); start.Show(); } }}