C#机房重构-----显示上机记录去重

前言:

    在使用表格形式显示表里全部数据的时候,往往会出现点击几次命令按钮就显示几次相同内容。所以对出现重复数据很烦恼,因为用户不是程序猿,所以也不会按照程序开发者的思路使用。难免会有多按几下的用户,这时候就会出问题!

解决思路:加一个字符串标签,每次显示过了之后会把上次的查询ID存在哪个标签里,在此点击会和上次哪个标签做对比。还有一点切记初始化标签,这个简单在删除文本框内容的时候删除表格内容同时初始化字符串标签。

实现代码:

字符串标签

//储存输入的卡号,用于判断是否多次查询同一个卡号
        string oldCardno = "";

显示内容代码

  //实例化创建BLL层的工厂
            FactoryBLL factBLL = new FactoryBLL();
            //调用上机记录业务接口和创建BLL层工厂,实例化BLL层类
            LineStudentIBLL LinStudentIBLL = (LineStudentIBLL)factBLL.CreateUser("LineStudentBLL");
            //获取上机记录
            string StrMsg = "";//接受返信息
            DataTable LineStudentTable = LinStudentIBLL.SelectLineStudent(txtcardno.Text, this, ref StrMsg);
            #region 显示数据到DataGridView上
            //防止多次点击查询按钮显示相同内容
            if (txtcardno.Text == oldCardno)
            {
                MessageBox.Show("已经没有可查询信息!");
            }
            else
            {
                //创建表和填充数据
                for (int i = 0; i <= LineStudentTable.Rows.Count - 1; i++)//获取行数
                {
                    int index = this.dataGridView2.Rows.Add();//添加一行
                    for (int j = 0; j <= LineStudentTable.Columns.Count - 1; j++)//获取列数
                    {
                        //添加数据
                        dataGridView2.Rows[index].Cells[j].Value = LineStudentTable.Rows[i][j].ToString();
                    }

                }
            }//end if
            //给oldCardno赋值
            oldCardno = txtcardno.Text;
            #endregion
            //提示,改变窗体标题栏内容
            this.Text = StrMsg;

结果:

posted @ 2020-03-01 20:32  康世行  阅读(32)  评论(0)    收藏  举报