• 今天小小的总结一下最近的小程序中的问题


                  嘿嘿,每一天持续自由学习中,但是真的是感觉这样的一周过去啦,没有学习什么,只是自己在学习一些自己想要学习的,虽然也好啦,但是感觉很不舒服,没有按照课程的内容走,真的希望这周快点过去的啦,今天来学校只是坐在这里把前几天的小程序中的错误改改啦,然后想一想,既然完成啦,就写一写这个小程序中学到的东西啦,东西不多,但是希望自己下一次在做程序时间能够有更深的印象啦,能够不再询问的啦,嘿嘿,好啦,下面就总结对于我这样的初学者需要注意的问题啦。

            一.密码加密问题

            我们在存储注册用户的密码时间一般在数据库中不想被看到,那么我们可以使得密码加密啦,简单的说下使用MD5加密的方法:

                string pwd = this.textBox1.Text;            
                MD5 md5 = new MD5CryptoServiceProvider();   //创建MD5的加密对象
                byte[] bytes = Encoding.Default.GetBytes(pwd);//把要进行MD5加密的字符串转换成字节数组
                byte[] bytess = md5.ComputeHash(bytes);
                pwd = BitConverter.ToString(bytess).Replace("-", "");

                 

            在这里我们在文本框中获取密码,然后实例化一个类MD5,然后是我们需要对编码方式处理一下的啦,以不至于出现乱码啦,还有最好在后面添加转换为小写的方法(ToLower()),我们使用MD5中的ComputeHash方法可以使密码加密的啦,具体就是这样的思想吧,嘿嘿。

                 二.页面可以轮回加载

                  

       

                 在这里我刚开始时间,每次删除一条注册信息,还要重新启动,感觉好麻烦,就在想应该怎样才能删除一条信息,然后重新返回一个新的值,就是不再显示删除信息的信息那,只是想到啦让页面加载啦,但是没有成功,最后问老师啦,原来就这样啦,和跳转页面一样的啦,只是重新展示一下页面啦,然后把当前现实的页面隐藏就可以啦,嘿嘿,这是自己没有想到的啦。现在知道啦,以后就可以让页面有一个连贯性啦,嘿嘿。

              三.鼠标的简单事件

              

            private void txtname_MouseEnter_1(object sender, EventArgs e)
            {
                this.txtname.Text = string.Empty;
                this.txtname.ForeColor = Color.Black;
            }
    
            private void textBox1_MouseEnter_1(object sender, EventArgs e)
            {
                this.textBox1.Text = string.Empty;
                this.textBox1.PasswordChar = '*';
                this.textBox1.ForeColor = Color.Black;
            }

                     在这里我们可以设置文本框的属性啦,当然可以在窗体的空间上面直接修改属性默认值为用户名,密码即可,然后改变一下字体颜色,现在在后台页面上面实现其改变其属性啦,首先当我们鼠标进入时间我们可以让字体隐藏啦,然后输入我们要输入的信息啦,在这里我们就需要对文本框中的鼠标进入事件进行写一个方法啦,当鼠标进入时间我们使文本框为空,另外还需要改变我们输入的信息的字体的颜色,当然密码依然如粗,只不过我们需要对密码现实的样式设置一下,可以设置为*显示啦,嘿嘿,我们刚开始对于这些设计都是没有注意的啦,嘿嘿,以后再写登录时间可以添加的啦。

              四.使用dateTimePicker1控件计算年龄的方法

                string birthday = this.dateTimePicker1.Text;
                int age = DateTime.Now.Year - DateTime.Parse(birthday).Year;  //通过生日求出年纪
                bool sex = this.radioButton1.Checked ? true : false;

                    上面的三个问题都是在登录界面需要注意的啦,那么这个是在注册页面啦,我们在注册信息时间有时间注册的是我们的出生年月日啦,而在数据库中我们存储的是我们的年龄啦,嘿嘿,这时间的我们就需要处理一下注册用户的出生年月日啦,就是通过上面的两行代码即可实现我们存储的年龄啦,首先通过时间控件获取出生年月日,然后获取当前时间的年以及出生年月日的年,上面的年龄即可实现啦,嘿嘿;而我们获取性别时间可以使用一个三元表达式,这样更加方便啦,嘿嘿,把这个写出来只是想加深下印象啦。

              五.Id的获取

           string one =this.listBox1.SelectedItem.ToString();   //获取ListBox中的其中一项,然后把它装变为字符串
           string[] two = one.Split(',');           //字符串的处理可以使用方法Split分割,然后用数组存储啦
           int id = int.Parse(two[0]);           //获取第一项即可

                 

      

                     在这里其实就是我们注册的信息在ListBox中显示,如果我们需要修改哪一项内容,那么就需要选中该条信息啦,在这里我们需要把选中的信息显示在更改页面上面的啦,注册时间可以直接注册,可更改信息时间注册用户的信息是显示的,在这里我们可以通过获取Id然后查询该用户的所有信息,然后显示在更该页面上面,这里我们就需要注意应该怎样获取id的啦,像上面图片所示,我们需要获取Id,可以使用分割的啦,刚开始使用的是SubString(0,0)方法截取id,那时间只考虑啦id是以为数字的,没注意,当id两位数字、时间获取的id都是1,于是考虑使用Split(',')分割的啦,嘿嘿,这个下次在做程序啦需要注意考虑一定要全面的啦,嘿嘿,不能再这样只是感觉把程序做出来没有错就可以啦。

              六.构造函数在实际中的使用

             Update u = new Update(id,username,pwd,address,phone,sex,age);
                    u.Show();
                    this.Hide();
            int id = 0;
            public Update(int id,string username,string pwd,string address,string phone ,bool sex,int age)
            {
                InitializeComponent();
                this.txtUserName.Text = username;
                this.txtpwd.Text = pwd;
                this.txtaddress.Text = address;
                this.txtphone.Text = phone;
                sex = this.radioButton1.Checked ? true : false;
                string birthday = this.dateTimePicker1.Text;
                //age = DateTime.Now.Year - DateTime.Parse(birthday).Year;
                //string birthday = this.dateTimePicker1.Text;
                this.id = id;
            }

              嘿嘿,其实一直在控制台上面写构造函数的传参,而在页面间的传值能够想起来使用这个感觉还好啦,那时间学构造函数知道是传参使用的,现在突然使用到啦,感觉学的基础知识也用到啦,似乎很是高兴的啦,感觉基础其实也是很重要的啦,在这里只要是加深下印象的啦,下次窗体间的传参我会使用起来更加方便啦,很容易想到的吧。

              七.在ListBox中显示每一项的信息

             DataTable dt=bll.GetAllUserInfo();
             foreach (DataRow item in dt.Rows)
             {
                  string format = string.Format("{0},{1},{2},{3},{4},{5},{6}",item[0],item[1],item[2],item[3],item[4],item[5],item[6]);
                  this.listBox1.Items.Add(format);
             }

                  在这里突然想起来就是这里还出错啦那,那时间刚开始写SqlHelp这个类,对返回一个DataTable的类型的值还不是很熟悉,习惯了返回值类型是bool,string,in等,甚至一般都是void的,所以刚开始真的不知道我们可以直接在DAL层返回一个DataTable类型的值,BLL依然如此,所以在UI页面上面加载页面啦也没有显示信息啦,那时间就是知道不对,但是在返回值类型上面局限性太强,所以错啦也不知道怎样解决的啦,现在经过练习好啦很多,发现也不在局限于那几种类型啦,甚至有时间返回的是一个集合等,当然,返回类型不对,所以在遍历出来的关键字in不知道该怎样写的啦,总是为空的啦,然后现在知道类型啦,使用起来韩式蛮好的,嘿嘿。

                  这是做的一个小小的增删改查的小程序的啦,上面的有的是出现的问题的啦,有的是感觉总结一下需要加深下印象,下次再遇到同样的问题啦可以直接解决的啦,嘿嘿,好啦,今天就总结到这里啦,感觉今天的总结收获是蛮大的啦,嘿嘿。

    我是小白,新建立了一个的群:461431726,希望在这里和大家一起交流,共同学习。前端的话建议加群:646564351,谢谢
  • 相关阅读:
    fastjson异常(字符串集合转成字符串数组)
    从url中下载资源(目前测试只有照片,文件类的没有进行测试)
    springboot+mybatisplus进行整合并且使用逆向工程
    maven使用
    maven-相关配置
    【深入】java 单例模式(转)
    jdbcTemplate的配置
    Spring JdbcTemplate 的使用与学习(转)
    spring 第一篇(1-1):让java开发变得更简单(下)转
    context:exclude-filter 与 context:include-filter 转
  • 原文地址:https://www.cnblogs.com/dyxd/p/4172090.html
Copyright © 2020-2023  润新知