c#2005编写串口取数分解保存Oracle数据库

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO.Ports;

namespace GpyAnalyse
{
    public partial class FrmAnalyse : Form
    {
       
        DataBase db = new DataBase();

        public FrmAnalyse()
        {
            InitializeComponent();
            this.skinEngine1.SkinFile = "WaveColor1.ssk";//设定界面的皮肤 
            

            //检测程序是否设为开机启动
            //Register rg = new Register();
            //rg.start_with_windows();

           
        }
        private void FrmAnalyse_Load(object sender, EventArgs e)
        {

            if (sp.IsOpen)
            {
                sp.Close();
                sp.Open();
            }
            else
                sp.Open();
        }

       //波特率、停止位等在SerialPort控件属性里面设置

        private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {           
                string  str=sp.ReadExisting();
              
                this.Invoke((EventHandler)(delegate
                {                   
                    this.txtdata.AppendText(str);                    
                }));
           
        }
        private void GetBlank()
        {
          
            txtgh.Text = "0";
            txtlh.Text = "0";
            txtpos.Text = "0";
            txtrq.Text = "0";
            txtsj.Text = "0";
            txtc.Text = "0";
            txtSi.Text = "0";
            txtMn.Text = "0";
            txtP.Text = "0";
            txtS.Text = "0";
            txtCr.Text = "0";
            txtNi.Text = "0";
            txtCu.Text = "0";
            txtV.Text = "0";
            txtTi.Text = "0";
            txtNb.Text = "0";
            txtAl.Text = "0";           
            txtFE.Text = "0";
            txtCeq.Text = "0";
            txtCo.Text = "0";

        }
        private bool IsUpdateElement(string lh,string pos)
        {
            DataTable tbl = new DataTable();
            string sql = " select * from gpy where lh='" + lh + "'and ypbs='" + pos + "'";
            db.GetData(ref tbl, sql);
            if ((tbl == null) || (tbl.Rows.Count == 0))         //无冲突,直接使用
                return false;
            else
                return true;
        }

//早期程序,其实可以不用控件,直接用数组也可以实现
        private void DualData()
        {
            try
            {


                string rq;
                if (txtdata.Text.Trim() != "")
                {
                    //0213
                    //2023-11-02T09:15:26,3211855 - 101 - 4,17,C,0.1166,Si,0.0018,Mn,0.1050,P,0.0109,S,0.0220,Cr,0.0439,Ni,0.0233,Cu,0.1399,Mo,0.0040,V,0.0031,Ti,0.0001,Nb,0.0021,Al,0.3575,CEQ,0.16,W,-0.0025,Co,0.0056,Fe%,99.1668,
                    //140
                    string[] sptdata = txtdata.Text.Trim().Split(new Char[] { ',' });
                    int ss = txtdata.Text.Trim().Length;
                    txtrq.Text = DateTime.Parse(sptdata[0].Substring(8).Remove(10)).ToString("yyyyMMdd");
                    txtsj.Text = DateTime.Parse(sptdata[0].Substring(19)).ToString("HH:mm:ss");
                    txtlh.Text = sptdata[1].Remove(8);
                    txtpos.Text = sptdata[1].Substring(10, 3);

                    txtgh.Text = "快分";
                    for (int j = 0; j + 1 < sptdata.Length; j++)
                    {
                        switch (sptdata.GetValue(j).ToString().Trim())
                        {
                            case "C":
                                txtc.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Si":
                                txtSi.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Mn":
                                txtMn.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "P":
                                txtP.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "S":
                                txtS.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Al":
                                txtAl.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Cr":
                                txtCr.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Ni":
                                txtNi.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Cu":
                                txtCu.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Mo":
                                txtMo.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "V":
                                txtV.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Ti":
                                txtTi.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Nb":
                                txtNb.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Co":
                                txtCo.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "Fe%":
                                txtFE.Text = sptdata.GetValue(j + 1).ToString();
                                break;
                            case "CEQ":
                                txtCeq.Text = sptdata.GetValue(j + 1).ToString();
                                break;


                        }
                    }

                    SavaData();
                    txtdata.Text = "";
                }
            }
            catch (Exception)
            {
                //db.WriteLog(ex.Message);
                throw;
            }
        }
      
        public void  SavaData()
        {

            //try
            //{
              
            string ypbs = db.serchByString("select max(ypbs) from gpy where lh='" + txtlh.Text.Trim() + "' and gh='快分'");
                    if (ypbs != "")
                        txtpos.Text = Convert.ToString(Convert.ToInt16(ypbs) + 1);  

             
                string sql = "insert into gpy(LH,GH,YPBS,RQ,SJ,C,SI,MN,P,S,CR,NI,CU,MO,V,TI,NB,AL,FE,CEQ,Co) values("
                    + "'" + txtlh.Text.Trim() + "','" + txtgh.Text.Trim() + "','" + txtpos.Text.Trim() + "','" + txtrq.Text.Trim()
                    + "','" + txtsj.Text.Trim() + "'," + txtc.Text.Trim() + "," + txtSi.Text.Trim() + ","
                    + txtMn.Text.Trim() + "," + txtP.Text.Trim() + "," + txtS.Text.Trim() + ","
                    + txtCr.Text.Trim() + "," + txtNi.Text.Trim() + "," + txtCu.Text.Trim() + ","
                    + txtMo.Text.Trim() + "," + txtV.Text.Trim() + "," + txtTi.Text.Trim() + ","
                    + txtNb.Text.Trim() + "," + txtAl.Text.Trim() + "," 
                    + txtFE.Text.Trim() + "," + txtCeq.Text.Trim() + "," + txtCo.Text.Trim()  + ")";

                if (db.InsertOrUpdate(sql) > 0)
                {
                    this.statusmsg.Text = DateTime.Now.ToString("HH:mm:ss") + "  插入一条数据" + this.txtlh.Text + "成功";
                }
                else
                {
                    this.statusmsg.Text = DateTime.Now.ToString("HH:mm:ss") + "  插入一条数据" + this.txtlh.Text + "失败";
                }

            //}
            //catch (Exception ex)
            //{
            //    //db.WriteLog(ex.Message);

            //}        


        }
       
        private void timerread_Tick(object sender, EventArgs e)
        {
            DualData();
        }

        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (this.Visible)
            {
                this.Hide();
            }
            else
            {
                this.Show();
            }
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Show();
        }

        private void btntest_Click(object sender, EventArgs e)
        {
           
            DualData();
        }

        private void btnexit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void txtdata_TextChanged(object sender, EventArgs e)
        {
            //string str = txtdata.Text.Remove(txtdata.Text.Length - 2);
            if (txtdata.Text.Length > 220)
                DualData();
        }

    }

   //该类来自网络,如有侵权,告之必删

class Register
    {
        /// <summary>
        /// 开机启动注册表检查
        /// </summary>
        public void start_with_windows()
        {
            RegistryKey hklm = Registry.LocalMachine;
            RegistryKey run = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
            //未设置开机启动
            if (run.GetValue("成分分析系统") == null)
            {
                register();
            }

        }


        /// <summary>
        /// 将程序的开机启动写入注册表
        /// </summary>
        private void register()
        {
            string starupPath = Application.ExecutablePath;
            //class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
            RegistryKey loca = Registry.LocalMachine;
            RegistryKey run = loca.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            try
            {
                run.SetValue("成分分析系统", starupPath);
                MessageBox.Show("注册表添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                loca.Close();
                run.Close();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    } 
}

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值