⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.cs

📁 PDA程序PDA for windows CE take a look
💻 CS
📖 第 1 页 / 共 3 页
字号:
            }
            else
            {
                Sound.PlayWAV(@"\Windows\Alarm2.wav");
                info = "与读写器建立连接失败!";
            }

            AddTime2Record(info);
            Cursor.Current = Cursors.Default;
        }

        // 断开连接
        private void btn_ClosePort_Click(object sender, EventArgs e)
        {
            bool IsClosed = RFIDReader.ClosePort();
            string info = "";

            if (IsClosed)
            {
                IsOpened = false;
                timerDo.Enabled = false;

                btn_OpenPort.Enabled = true;
                btn_ClosePort.Enabled = false;
                btn_CloseReader.Enabled = false;
                cmb_CloseDelaySet.Enabled = false;

                QueryPower();

                Sound.PlayWAV(@"\Windows\Infend.wav");
                info = "已断开与读写器连接!";
            }
            else
            {
                Sound.PlayWAV(@"\Windows\Alarm2.wav");
                info = "断开连接失败!";
            }
            AddTime2Record(info);
        }

        // 关闭读写器
        private void btn_CloseReader_Click(object sender, EventArgs e)
        {
            int IsClosed = RFIDReader.CloseReader();
            string info = "";

            if (IsClosed == 1)
            {
                Sound.PlayWAV(@"\Windows\Infend.wav");

                btn_ClosePort_Click(sender, e);
                info = "读写器已关机,重新开机请按读写器开关!";
            }
            else
            {
                Sound.PlayWAV(@"\Windows\Alarm2.wav");
                info = "关机失败!" + RFIDReader.ErrorMatch(IsClosed);
            }
            AddTime2Record(info);
        }

        // 设置读写器自动关机延时
        private void cmb_CloseDelaySet_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (IsOpened)
            {
                timerDo.Enabled = false;
                string info = "";

                int IsSet = RFIDReader.SetReaderCloseDelay((byte)(cmb_CloseDelaySet.SelectedIndex + 1));
                if (IsSet == 1)
                {
                    CloseDelay = (byte)(cmb_CloseDelaySet.SelectedIndex + 1);
                    info = "读写器关机延时设置为" + CloseDelay.ToString() + "分钟!";
                    Sound.PlayWAV(@"\Windows\Infend.wav");
                }
                else
                {
                    info = "读写器关机延时设置失败!" + RFIDReader.ErrorMatch(IsSet);
                    Sound.PlayWAV(@"\Windows\Alarm2.wav");
                }

                AddTime2Record(info);
                timerDo.Enabled = true;
            }
        }

        #endregion 读写器配置

        #region 读使用证

        // 以TID为条件查询气瓶信息
        private void TIDQuery(string TID)
        {
            // 方法一:使用DataSet
            Cursor.Current = Cursors.WaitCursor;
            
            // SQL语句
            //string SqlStr = "select 标签编号,车牌号,条码编号,出厂编号,气瓶容积,上次检验日期,下次检验日期 from GasInfo Where 标签编号 ='" + TID + "' and 是否已注销=0";
            string SqlStr = "Select * from GasInfo Where 标签编号 ='" + TID + "' and 是否已注销=0";
            
            SqlCeDataAdapter SqlAdp = new SqlCeDataAdapter(SqlStr, Conn);
            DataSet ds = new DataSet();
            SqlAdp.Fill(ds, "GasInfo");           
            
            dataGridInfo.DataSource = ds.Tables[0];

            Sound.PlayWAV(@"\Windows\Alarm1.wav");

            Cursor.Current = Cursors.Default;

/*            
            // 方法二:使用SqlCeResultSet
            Cursor.Current = Cursors.WaitCursor;
            // SQL语句
            string SqlStr = "Select * from GasInfo Where 标签编号 ='" + TID + "' and 是否已注销=0";
            
            // 创建并配置 SqlCeCommand 对象
            SqlCeCommand Cmd = new SqlCeCommand(SqlStr, Conn);

            // 创建 SqlCeResultSet 对象,并配置为可滚动、可更新、检测数据源更改
            ResultSetOptions Options = ResultSetOptions.Scrollable;
            SqlCeResultSet ResultSet = Cmd.ExecuteResultSet(Options);

            // 创建 ResultSetView 对象,配置为只显示序号为 1,2,3 的列
            ResultSetView ResultSetView = ResultSet.ResultSetView;
            int[] ordinals = new int[] { 0, 1, 2 };
            ResultSetView.Ordinals = ordinals;

            // 将 ResultSetView 绑定到 DataGrid 控件
            dataGridInfo.DataSource = ResultSetView;
           
            Cursor.Current = Cursors.Default; 
*/
        }

        // 以车牌号为条件查询气瓶信息
        private void VehicleCodeQuery(string VC)
        {
            Cursor.Current = Cursors.WaitCursor;

            // SQL语句
            //string SqlStr = "select 标签编号,车牌号,条码编号,出厂编号,气瓶容积,上次检验日期,下次检验日期 from GasInfo Where 标签编号 ='" + TID + "' and 是否已注销=0";
            string SqlStr = "Select * from GasInfo Where 车牌号 ='粤A" + VC + "' and 是否已注销=0";

            SqlCeDataAdapter SqlAdp = new SqlCeDataAdapter(SqlStr, Conn);
            DataSet ds = new DataSet();
            SqlAdp.Fill(ds, "GasInfo");

            dataGridInfo.DataSource = ds.Tables[0];

            Sound.PlayWAV(@"\Windows\Alarm1.wav");

            Cursor.Current = Cursors.Default;
        }

        // 读TID
        private void btn_ReadTag_Click(object sender, EventArgs e)
        {
            IsReceived = -1;
            IsFree = false;
            timerDo.Enabled = false;

            byte[] VisitCode = new byte[4];
            //  访问密码默认为4字节的0
            for (int i = 0; i < 4; i++)
            {
                VisitCode[i] = 0;
            }

            lst_TID.Items.Clear();

            List<string> NewTIDCode = new List<string>();
            
            int Result = RFIDReader.ReadTIDCode(VisitCode, ref NewTIDCode);
            if (Result == 1)
            {
                string Time = "";
                string nowHour = "";
                string nowMinute = "";
                string nowSecond = "";
                
                // 播放成功读标签的声音
                //Sound.PlayWAV(@"\Windows\Infend.wav");  
                //tbTIDInfo.Text = "读TID码成功!";

                foreach (string TIDCode in NewTIDCode)
                {
                    nowHour = DateTime.Now.Hour.ToString();
                    nowMinute = DateTime.Now.Minute.ToString();
                    nowSecond = DateTime.Now.Second.ToString();
                    RFIDReader.CheckTime(ref nowHour);
                    RFIDReader.CheckTime(ref nowMinute);
                    RFIDReader.CheckTime(ref nowSecond);
                    Time = nowHour + ":" + nowMinute + ":" + nowSecond;

                    string[] newItem ={ TIDCode, Time };
                    lst_TID.Items.Insert(0, new ListViewItem(newItem));
                    lst_TID.Items[0].BackColor = Color.LightPink; //改变底色
                }

                // 默认查询第1个标签
                if (lst_TID.Items.Count >= 1)
                {
                    string TID = lst_TID.Items[0].SubItems[0].Text;

                    TIDQuery(TID);
                }
            }
            else
            {
                //tbTIDInfo.Text = "与读写器建立连接失败!" + RFIDReader.ErrorMatch(Result);
                Sound.PlayWAV(@"\Windows\Alarm2.wav"); // 播放失败声音
            }

            IsFree = true;
            timerDo.Enabled = true;
        }

        // 输入车牌号直接查询气瓶信息
        private void btn_VehicleCodeQuery_Click(object sender, EventArgs e)
        {
            if (tb_QueryVehicleCode.Text.Length == 5)
            {
                VehicleCodeQuery(tb_QueryVehicleCode.Text);
            }
            else
            {
                Sound.PlayWAV(@"\Windows\Alarm2.wav");
                MessageBox.Show("请输入5位车牌号", "提示");
            }
        }

        // 清除数据
        private void btn_TagClear_Click(object sender, EventArgs e)
        {
            tb_QueryVehicleCode.Text = "";
            lst_TID.Items.Clear();
            dataGridInfo.DataSource = null;           
        }

        // 改变所选TID时查询
        private void lst_TID_SelectedIndexChanged(object sender, EventArgs e)
        {           
            ListView.SelectedIndexCollection SelectedIndexes = lst_TID.SelectedIndices;

            foreach (int index in SelectedIndexes)
            {
                string TID = lst_TID.Items[index].SubItems[0].Text;
                TIDQuery(TID);
            }
        }

        // 车牌号输入框获取焦点时 激活输入面板
        private void tb_QueryVehicleCode_GotFocus(object sender, EventArgs e)
        {
            //inputPanel1.Enabled = true;
        }

        // 车牌号输入框失去焦点时 禁用输入面板
        private void dataGridInfo_LostFocus(object sender, EventArgs e)
        {
            //inputPanel1.Enabled = false;
        }

        #endregion 读使用证

        #region 读条形码

        // 以条形码编号为条件查询气瓶信息
        private void BarCodeQuery(string BarCode)
        {
            tb_VehicleCode.Text = "";
            tb_ProduceCode.Text = "";
            tb_Cuba.Text = "";
            tb_LastCheckDate.Text = "";
            tb_NextCheckDate.Text = "";
/*
            Cursor.Current = Cursors.WaitCursor;
            
            string SqlStr = "select * from GasInfo where 条码编号 ='" + BarCode + "'";
            
            SqlCeDataAdapter SqlAdp = new SqlCeDataAdapter(SqlStr, Conn);
           
            DataSet ds = new DataSet();
                       
            SqlAdp.Fill(ds);

            Sound.PlayWAV(@"\Windows\Alarm1.wav");

            if (ds.Tables[0].Rows.Count > 0)
            {
                DataRowView DRV = ds.Tables[0].DefaultView[0];

                tb_VehicleCode.Text = Convert.ToString(DRV[0]);
                tb_ProduceCode.Text = Convert.ToString(DRV[2]);
                tb_Cuba.Text = Convert.ToString(DRV[3]);
                tb_LastCheckDate.Text = Convert.ToString(DRV[4]);
                tb_NextCheckDate.Text = Convert.ToString(DRV[5]);
            }
            else
            {
                tb_VehicleCode.Text = "";
                tb_ProduceCode.Text = "";
                tb_Cuba.Text = "";
                tb_LastCheckDate.Text = "";
                tb_NextCheckDate.Text = "";

                MessageBox.Show("数据库中不存在该条形码编号的气瓶信息", "提示");
            }

            Cursor.Current = Cursors.Default;
*/

            Cursor.Current = Cursors.WaitCursor;

            string SqlStr = "select * from GasInfo where 条码编号 ='" + BarCode + "'";

            SqlCeCommand Cmd = new SqlCeCommand(SqlStr, Conn);
            SqlCeDataReader SDR = Cmd.ExecuteReader();

            Sound.PlayWAV(@"\Windows\Alarm1.wav");

            if (SDR.Read())
            {
                tb_VehicleCode.Text = SDR.GetString(0);
                tb_ProduceCode.Text = SDR.GetString(2);
                tb_Cuba.Text = SDR.GetValue(3).ToString();
                tb_LastCheckDate.Text = SDR.GetString(4);
                tb_NextCheckDate.Text = SDR.GetString(5);    
            }
            else
            {
                MessageBox.Show("数据库中不存在该条形码编号的气瓶信息", "提示");
            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -