/// <summary>
        /// 查重方法
        /// </summary>
        /// <returns></returns>
        private bool btnCheck()
        {
            bool rbool = true;

            try
            {
                //IC卡类型值
                string ValueName = this.txtICCardType_Value.Text.Trim();
                string ICType    = this.txtICCardType_Name.Text.Trim();

                //判断名称是否已存在
                Expression <Func <ICCardType, bool> > funviewICCard = n => n.ICCardType_Name == ICType && n.ICCardType_Name != this.dgvICCardType.SelectedRows[0].Cells["ICCardType_Name"].Value.ToString();
                if (ICCardTypeDAL.Query(funviewICCard).Count() > 0)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "该IC卡类型名称已存在", txtICCardType_Name, this);
                    txtICCardType_Name.Focus();
                    rbool = false;;
                }
                //判断名称是否已存在
                Expression <Func <ICCardType, bool> > funviewICCard1 = n => n.ICCardType_Value == ValueName && n.ICCardType_Value != this.dgvICCardType.SelectedRows[0].Cells["ICCardType_Value"].Value.ToString();
                if (ICCardTypeDAL.Query(funviewICCard1).Count() > 0)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "该IC卡类型值已存在", txtICCardType_Value, this);
                    txtICCardType_Value.Focus();
                    rbool = false;;
                }
                return(rbool);
            }
            catch
            {
                CommonalityEntity.WriteTextLog("IC卡类型信息 btnCheck()");
                rbool = false;
            }
            return(rbool);
        }
 /// <summary>
 /// 用户双击组件时发生
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void dgvICCardType_DoubleClick(object sender, EventArgs e)
 {
     this.btnUpdate.Enabled = true;
     this.btnSave.Enabled   = false;
     if (this.dgvICCardType.SelectedRows.Count > 0)//选中行
     {
         if (dgvICCardType.SelectedRows.Count > 1)
         {
             MessageBox.Show("修改只能选中一行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         else
         {
             //修改的值
             int ID = int.Parse(this.dgvICCardType.SelectedRows[0].Cells["ICCardType_ID"].Value.ToString());
             Expression <Func <ICCardType, bool> > funviewinto = n => n.ICCardType_ID == ID;
             foreach (var n in ICCardTypeDAL.Query(funviewinto))
             {
                 if (n.ICCardType_Name != null)
                 {
                     //IC卡类型名称
                     this.txtICCardType_Name.Text = n.ICCardType_Name;
                 }
                 if (n.ICCardType_Value != null)
                 {
                     //IC卡类型值
                     this.txtICCardType_Value.Text = n.ICCardType_Value;
                 }
                 if (n.ICCardType_State != null)
                 {
                     // IC卡类型状态
                     this.comboxICCardType_State.Text = n.ICCardType_State;
                 }
                 if (n.ICCardType_Description != null)
                 {
                     // IC卡类型描述
                     this.txtICCardType_Description.Text = n.ICCardType_Description;
                 }
                 if (n.ICCardType_Remark != null)
                 {
                     // IC卡类型备注
                     this.txtICCardType_Remark.Text = n.ICCardType_Remark;
                 }
                 if (n.ICCardType_Permissions != null)
                 {
                     ICCardPermissions.Text = n.ICCardType_Permissions;
                 }
                 break;
             }
         }
     }
     else
     {
         MessageBox.Show("请选择要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
        /// <summary>
        /// 删除选中行数据的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbtnDelICCardType()
        {
            try
            {
                int j = 0;
                if (this.dgvICCardType.SelectedRows.Count > 0)//选中删除
                {
                    if (MessageBox.Show("确定要删除吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        //选中数量
                        int    count = dgvICCardType.SelectedRows.Count;
                        string id    = "";
                        //遍历
                        for (int i = 0; i < count; i++)
                        {
                            int iccardtype_id = int.Parse(this.dgvICCardType.SelectedRows[i].Cells["ICCardType_ID"].Value.ToString());
                            Expression <Func <ICCardType, bool> > funuserinfo = n => n.ICCardType_ID == iccardtype_id;
                            string strContent = LinQBaseDao.Query("select ICCardType_Name from ICCardType where ICCardType_ID=" + iccardtype_id).Tables[0].Rows[0][0].ToString();

                            DataTable dt = LinQBaseDao.Query("select * from ICCard where ICCard_ICCardType_ID =" + iccardtype_id).Tables[0];
                            if (dt.Rows.Count > 0)
                            {
                                MessageBox.Show(strContent + "存在关联信息不能删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                break;
                            }
                            if (ICCardTypeDAL.DeleteToMany(funuserinfo))
                            {
                                j++;
                                CommonalityEntity.WriteLogData("删除", "删除IC卡类型名称为:" + strContent + "的信息", CommonalityEntity.USERNAME);//添加操作日志
                            }
                        }
                        if (j == count)
                        {
                            MessageBox.Show("成功删除", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show("删除失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                else//没有选中
                {
                    MessageBox.Show("请选择要删除的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch
            {
                CommonalityEntity.WriteTextLog("IC卡类型信息管理 tbtnDelICCardType() 异常!+");
            }
            finally
            {
                LogInfoLoad("");
            }
        }
        /// <summary>
        /// “修改” 查看数据按钮的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtICCardType_Name.Text == "")
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC卡类型名称不能为空!", txtICCardType_Name, this);
                    return;
                }
                if (this.txtICCardType_Value.Text == "")
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC卡类型值不能为空!", txtICCardType_Value, this);
                    return;
                }
                //判断IC卡类型名称是否存在txtICCardType_Name
                if (LinQBaseDao.Query("select * from ICCardType where ICCardType_Name='" + txtICCardType_Name + "'").Tables[0].Rows.Count >= 1)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC类型名称已存在!", txtICCardType_Name, this);
                    return;
                }
                if (LinQBaseDao.Query("select * from ICCardType where ICCardType_Value='" + txtICCardType_Value + "'").Tables[0].Rows.Count >= 1)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC类型值已存在!", txtICCardType_Value, this);
                    return;
                }

                if (!btnCheck())
                {
                    return;                                    // 去重复
                }
                if (this.dgvICCardType.SelectedRows.Count > 0) //选中行
                {
                    if (dgvICCardType.SelectedRows.Count > 1)
                    {
                        MessageBox.Show("修改只能选中一行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        Expression <Func <ICCardType, bool> > p = n => n.ICCardType_ID == int.Parse(this.dgvICCardType.SelectedRows[0].Cells["ICCardType_ID"].Value.ToString());
                        string id              = "";
                        string strfront        = "";
                        string strContent      = "";
                        Action <ICCardType> ap = s =>
                        {
                            strfront                 = s.ICCardType_Name + "," + s.ICCardType_State + "," + s.ICCardType_State + "," + s.ICCardType_Value + "," + s.ICCardType_Description + "," + s.ICCardType_Permissions + "," + s.ICCardType_Remark;
                            s.ICCardType_Name        = this.txtICCardType_Name.Text.Trim();
                            s.ICCardType_State       = this.comboxICCardType_State.Text.Trim();
                            s.ICCardType_Value       = this.txtICCardType_Value.Text.Trim();
                            s.ICCardType_Description = this.txtICCardType_Description.Text.Trim();
                            if (!string.IsNullOrEmpty(this.ICCardPermissions.Text.Trim()))
                            {
                                s.ICCardType_Permissions = this.ICCardPermissions.Text.Trim();
                            }
                            s.ICCardType_Remark = this.txtICCardType_Remark.Text.Trim();
                            strContent          = s.ICCardType_Name + "," + s.ICCardType_State + "," + s.ICCardType_State + "," + s.ICCardType_Value + "," + s.ICCardType_Description + "," + s.ICCardType_Permissions + "," + s.ICCardType_Remark;
                            id = s.ICCardType_ID.ToString();
                        };

                        if (ICCardTypeDAL.Update(p, ap))
                        {
                            MessageBox.Show("修改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            CommonalityEntity.WriteLogData("修改", "更新编号为:" + id + "的IC卡类型;修改前:" + strfront + ";修改后:" + strContent, CommonalityEntity.USERNAME); //添加操作日志
                            Empty();                                                                                                                           // 调用清空的方法
                        }
                        else
                        {
                            MessageBox.Show("修改失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            catch
            {
                CommonalityEntity.WriteTextLog("IC卡信息管理 btnUpdate_Click()");
            }
            finally
            {
                LogInfoLoad("");
                this.btnUpdate.Enabled = false;
                this.btnSave.Enabled   = true;
            }
        }
        /// <summary>
        /// “保 存” 按钮的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                //判断IC卡类型名称是否存在txtICCardType_Name
                if (LinQBaseDao.Query("select * from ICCardType where ICCardType_Name='" + txtICCardType_Name + "'").Tables[0].Rows.Count >= 1)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC类型名称已存在!", txtICCardType_Name, this);
                    return;
                }
                if (LinQBaseDao.Query("select * from ICCardType where ICCardType_Value='" + txtICCardType_Value + "'").Tables[0].Rows.Count >= 1)
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC类型值已存在!", txtICCardType_Value, this);
                    return;
                }
                if (this.txtICCardType_Name.Text == "")
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC卡类型名称不能为空!", txtICCardType_Name, this);
                    return;
                }
                if (this.txtICCardType_Value.Text == "")
                {
                    PublicClass.ShowToolTip(ToolTipIcon.Info, "提示", "IC卡类型值不能为空!", txtICCardType_Value, this);
                    return;
                }
                if (!btnCheck())
                {
                    return;              // 去重复
                }
                var ICCardTypeadd = new ICCardType
                {
                    ICCardType_Name             = this.txtICCardType_Name.Text.Trim(),
                    ICCardType_State            = this.comboxICCardType_State.Text.Trim(),
                    ICCardType_Value            = this.txtICCardType_Value.Text.Trim(),
                    ICCardType_Description      = this.txtICCardType_Description.Text.Trim(),
                    ICCardType_Remark           = this.txtICCardType_Remark.Text.Trim(),
                    ICCardType_Permissions      = this.ICCardPermissions.Text,
                    ICCardType_PermissionsValue = strview
                };

                if (ICCardTypeDAL.InsertOneICCardType(ICCardTypeadd))
                {
                    MessageBox.Show("添加成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    string strContent1 = "新增IC卡类型名称为: " + this.txtICCardType_Name.Text.Trim();
                    CommonalityEntity.WriteLogData("新增", strContent1, CommonalityEntity.USERNAME); //添加操作日志
                    Empty();                                                                       // 调用清空的方法
                }
                else
                {
                    MessageBox.Show("添加失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch
            {
                CommonalityEntity.WriteTextLog("IC卡信息管理 btnSave_Click()");
            }
            finally
            {
                LogInfoLoad("");
            }
        }