Ejemplo n.º 1
0
        public DataSet GetDataSet(string column, string tablename, string strwhere)
        {
            using (OracleConnection _connection = new OracleConnection(OracleHelper.GetConnectionstring()))
            {
                writelog = new Write_Log();
                DataSet ds     = new DataSet();
                string  sqlstr = "select " + column + " from " + tablename;
                if (!String.IsNullOrEmpty(strwhere))
                {
                    sqlstr = sqlstr + " where " + strwhere;
                }
                try
                {
                    _connection.Open();
                    OracleDataAdapter da = new OracleDataAdapter();
                    da.SelectCommand = new OracleCommand(sqlstr, _connection);
                    da.Fill(ds);
                }
                catch (Exception ex)
                {
                    writelog.Write("填充数据时出错!" + ex.Message + System.Environment.NewLine + sqlstr, "log");
                    return(null);
                }
                finally {
                    _connection.Close();
                    _connection.Dispose();
                }

                writelog = null;
                return(ds);
            }



            //writelog = new Write_Log();
            //if (ConnectDB.con.State != ConnectionState.Open)
            //{
            //    init = new ConnectDB();
            //    strError = init.DBConnect();
            //    if (!string.IsNullOrEmpty(strError))
            //    {
            //        writelog.Write(strError, "log");
            //        return null;
            //    }
            //}


            //string sqlstr = "select " + column + " from " + tablename;
            //if (!String.IsNullOrEmpty(strwhere))
            //{
            //    sqlstr = sqlstr + " where " + strwhere;
            //}
            ////writelog.Write(sqlstr, "log");

            //DataSet ds = new DataSet();
            //writelog.Write("1连接状态:" + ConnectDB.con.State.ToString() + "\r\n 连接字符串:" + ConnectDB.con.ConnectionString, "log");
            //OracleDataAdapter ada = new OracleDataAdapter(sqlstr, ConnectDB.con);

            //try
            //{
            //    writelog.Write("2连接状态:"+ConnectDB.con.State.ToString()+"\r\n 连接字符串:"+ ConnectDB.con.ConnectionString, "log");
            //    ada.Fill(ds, tablename);
            //}
            //catch (Exception ex)
            //{

            //    writelog.Write("填充数据时出错!" + ex.Message + System.Environment.NewLine + sqlstr, "log");
            //    return null;
            //}

            ////init.DisConnectDB(ConnectDB.con);
            //init = null;
            //writelog = null;
            //return ds;
        }
Ejemplo n.º 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            string Return_Value;

            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;//线程处理后的错误处理控件任然可以赋值
            Return_Value = INIExists(inifile);
            if (!String.IsNullOrEmpty(Return_Value))
            {
                MessageBox.Show(Return_Value);
            }
            StringBuilder objStrBd = new StringBuilder(256);

            GetPrivateProfileString("EQUIPMENT", "INSTRUMENTID", "", objStrBd, 256, FileName);
            instrument_id = objStrBd.ToString();

            textBox2.Text = INIHelper.getInstance().IniReadValue("EQUIPMENT", "Encode");
            string orgID = INIHelper.getInstance().IniReadValue("EQUIPMENT", "Agencies");
            string sql   = "select 资源id,简称 from 机构 where 资源id='in_机构id'";

            sql = sql.Replace("in_机构id", orgID);
            DataTable orgName = OracleHelper.GetDataTable(sql);

            if (orgName.Rows.Count > 0)
            {
                textBox1.Text = orgName.Rows[0]["简称"].ToString();
            }
            using (OracleConnection _connection = new OracleConnection(OracleHelper.GetConnectionstring()))
            {
                DataTable    dt   = new DataTable();
                ListViewItem item = new ListViewItem();
                try
                {
                    _connection.Open();
                    OracleDataAdapter da = new OracleDataAdapter();
                    da.SelectCommand = new OracleCommand("select id,名称 from 检验仪器 where instr('" + instrument_id + "',id)>0", _connection);
                    da.Fill(dt);
                    bolLongin = true;
                }
                catch (Exception exs)
                {
                    LoginForm log = new LoginForm();
                    if (log.ShowDialog() == DialogResult.OK)
                    {
                        bolLongin = true;
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                finally { _connection.Close(); }

                lv_Device.Items.Clear();
                foreach (DataRow i in dt.Rows)
                {
                    item     = lv_Device.Items.Add(i["名称"].ToString(), 1);
                    item.Tag = i["id"].ToString();
                    lv_Device.Columns[2].Text = "0";
                }
            }

            if (lv_Device.Items.Count > 0)
            {
                but_begin.Enabled = false;
                but_end.Enabled   = true;
                bolCon            = true;
                backgroundWorker1.RunWorkerAsync();
            }

            this.WindowState         = FormWindowState.Minimized;
            this.Visible             = false;
            this.notifyIcon1.Visible = true;
            this.SizeChanged        += new System.EventHandler(this.Form1_SizeChanged);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 判断是否有重复
        /// </summary>
        public void IsUpdate()
        {
            ds     = dsHandle.GetDataSet(@"解析类型,通讯程序名,
                                                        Extractvalue(通讯参数, '/root/db_type') as db_type,
                                                        Extractvalue(通讯参数, '/root/db_name') as db_name,
                                                        Extractvalue(通讯参数, '/root/user_name') as user_name,
                                                        Extractvalue(通讯参数, '/root/password') as password,
                                                        Extractvalue(通讯参数, '/root/server_name') as server_name,
                                                        Extractvalue(通讯参数, '/root/parastr') as parastr,
                                                        Extractvalue(通讯参数, '/root/selectstr') as selectstr", "检验仪器", "id = '" + strInstrumentID + "'");
            sqlstr = ds.Tables[0].Rows[0]["selectstr"].ToString();
            if (sqlstr.IndexOf("[SAMPLE_NO]") > 0)
            {
                sqlstr = sqlstr.Replace("[SAMPLE_NO]", strTestNO);
            }
            try
            {
                conDB.Open();
            }
            catch (Exception e)
            {
                //conDB.Close();
                writeLog.Write("数据库连接失败!" + e.Message, "log");
                strError = "数据库连接失败!" + e.Message;
                return;
            }
            if (conDB.State != ConnectionState.Open)
            {
                return;
            }

            DataTable dtSample  = OracleHelper.GetDataTable(@"select   wm_concat(样本序号) 样本序号
                                                                                          from 检验记录
                                                                                          where id in (select 记录id from 检验普通结果 where 结果标志 is not null)
                                                                                                   and 仪器id = '" + strInstrumentID + @"'
                                                                                                   and to_char(核收时间, 'yyyy-mm-dd') = to_char(sysdate, 'yyyy-mm-dd')");
            string    _sampleNo = dtSample.Rows[0]["样本序号"].ToString();

            if (string.IsNullOrEmpty(sqlstr))
            {
                sqlstr = @"SELECT dDate, nSid, sItem, fConc, sConc
                                  FROM Result
                                 where Format(dDate, \""yyyy-mm-dd\"") = Format(date() - 1, \""yyyy-mm-dd\"")
                                   and nSid not in (parameter)
                                 order by nsid";
            }
            sqlstr   = sqlstr.Replace("parameter", _sampleNo == "" ? "-1" : _sampleNo);//替换样本号
            dsResult = new DataSet();
            try
            {
                OleDbDataAdapter ada = new OleDbDataAdapter(sqlstr, conDB);
                ada.Fill(dsResult, "Table");
            }
            catch
            {
                dsResult = null;
            }
            finally
            {
                conDB.Close();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 默认解析方式
        /// </summary>
        /// <param name="a"></param>
        /// <param name="e"></param>
        public void GetResult(object a, EventArgs e)
        {
            try
            {
                string    strTestTime;        //检验时间
                string    strSampleNo;        //标本号
                string    strBarCode    = ""; //条码
                string    strOperator   = ""; //检验医师
                string    strSampleType = ""; //检验类型
                string    StrSpecimen   = ""; //标本类型
                string    ChannelType;        //0-普通结果;1-直方图;2-散点图;3-直方图界标;4-散点图界标;5-BASE64
                string    testItemID = "";    //通道项目ID
                DataRow[] FindRow;            //解析设置
                TestGraph  = new List <string>();
                saveResult = new SaveResult();
                IsUpdate();                             //重新检查是否有新数据
                tItemChannel = OracleHelper.GetDataTable(@"Select 通道编码, m.项目id, Nvl(小数位数, 2) As 小数位数, Nvl(换算比, 0) As 换算比, Nvl(加算值, 0) As 加算值, j.结果类型
                                                                                From 仪器检测项目 m, 检验项目 j
                                                                                Where m.项目id = j.项目id and m.仪器Id='" + strInstrumentID + "'");
                if (dsResult.Tables[0].Rows.Count == 0) //判断是否有新标本
                {
                    writeLog.Write(DateTime.Now.ToString() + "未检测到新数据!", "log");
                    return;
                }

                DataTable _dsResult = SelectDistinct(dsResult.Tables[0], "nSid");
                foreach (DataRow dr in _dsResult.Rows) //循环标本号
                {
                    strTestTime = DateTime.Parse(dr["dDate"].ToString()).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");;
                    strSampleNo = dr["nSid"].ToString();
                    string TestResultValue = "";
                    foreach (DataRow dr1 in dsResult.Tables[0].Select("nSid='" + dr["nSid"].ToString() + "'"))//循环标本号里面的检验项目
                    {
                        string _channelNo = dr1["sItem"].ToString();
                        FindRow = tItemChannel.Select("通道编码='" + _channelNo.Trim() + "'");
                        if (FindRow.Length == 0) //无普通结果则查找图像能道,无图像通道则更新通道类型为空
                        {
                            ChannelType = null;
                            writeLog.Write(strDevice, "未设置通道:" + _channelNo, "log");
                        }
                        else
                        {
                            testItemID      = FindRow[0]["项目id"].ToString();
                            ChannelType     = "0"; //普通结果
                            TestResultValue = TestResultValue + testItemID + "^" + dr1["Result"].ToString() + "|";
                        }
                    }
                    TestResultValue = strTestTime + "|" + strSampleNo + "^" + strSampleType + "^" + strBarCode + "|" + strOperator + "|" + StrSpecimen + "|" + "|" + TestResultValue;
                    try
                    {
                        saveResult.SaveTextResult(strInstrumentID, TestResultValue, TestGraph, null);
                        saveResult.UpdateData();
                        writeLog.Write(strDevice, "解析结果: " + TestResultValue, "result");
                    }
                    catch (Exception ex)
                    {
                        writeLog.Write(strDevice, "保存失败: " + ex.ToString(), "log");
                    }
                    //System.Windows.Forms.MessageBox.Show(TestResultValue);
                }
            }
            catch (Exception exp1)
            {
                writeLog.Write(strDevice, "处理失败: " + exp1.ToString(), "log");
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 提取数据
        /// </summary>
        public void Start()
        {
            try
            {
                conDB.Open();
            }
            catch (Exception e)
            {
                writeLog.Write("数据库连接失败!" + e.Message, "log");
                strError = "数据库连接失败!" + e.Message;
                return;
            }
            if (conDB.State != ConnectionState.Open)
            {
                return;
            }

            DataTable dtSample  = OracleHelper.GetDataTable(@"select   wm_concat(样本序号) 样本序号
                                                                                          from 检验记录
                                                                                          where id in (select 记录id from 检验普通结果 where 结果标志 is not null)
                                                                                                   and 仪器id = '" + strInstrumentID + @"'
                                                                                                   and to_char(核收时间, 'yyyy-mm-dd') = to_char(sysdate, 'yyyy-mm-dd')");
            string    _sampleNo = dtSample.Rows[0]["样本序号"].ToString();

            if (string.IsNullOrEmpty(sqlstr))
            {
                sqlstr = @"SELECT dDate, nSid, sItem, fConc, sConc
                                  FROM Result
                                 where Format(dDate, \""yyyy-mm-dd\"") = Format(date() - 1, \""yyyy-mm-dd\"")
                                   and nSid not in (parameter)
                                 order by nsid";
            }
            sqlstr   = sqlstr.Replace("parameter", _sampleNo == "" ? "-1" : _sampleNo);//替换样本号
            dsResult = new DataSet();
            try
            {
                OleDbDataAdapter ada = new OleDbDataAdapter(sqlstr, conDB);
                ada.Fill(dsResult, "Table");
            }
            catch (System.Data.OleDb.OleDbException sqlex)
            {
                strError = sqlex.Message;
                writeLog.Write(strError, "log");
                return;
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                writeLog.Write(strError, "log");
                return;
            }
            finally
            {
                conDB.Close();
            }
            object socketListen = strError;

            GetResult(strError, null);
            aTimer.Elapsed  += new ElapsedEventHandler(GetResult);
            aTimer.Interval  = 10000;
            aTimer.AutoReset = true;
            aTimer.Enabled   = true;
        }