• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

        一.密码加密问题

        我们在存储注册用户的密码时间一般在数据库中不想被看到,那么我们可以使得密码加密啦,简单的说下使用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不知道该怎样写的啦,总是为空的啦,然后现在知道类型啦,使用起来韩式蛮好的,嘿嘿。

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap