zoukankan      html  css  js  c++  java
  • ADO.NET 数据访问类查询、属性扩展

      今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询。

      主程序代码:

    List<Users> Ulist = new UsersData().Select();
    
                    if (Ulist.Count > 0)//判断是否包含语句
                    {
                        foreach (Users u1 in Ulist)//遍历
                        {
                            Console.WriteLine(u1.UserName + "  " + u1.PassWord + "  " + u1.NickName + "  " + u1.Sex + "  " + u1.Birthday + "  " + u1.Nation);
                        }
    
                    }

      UsersData数据访问类中的代码:

         public List<Users> Select()
            {
                List<Users> list=new List<Users>();
                cmd.CommandText="select * from Users";
    
                conn.Open();
                SqlDataReader dr=cmd.ExecuteReader();
                if(dr.HasRows)//判断是否包含数据
                {
                    while(dr.Read())
                    {
                        Users u=new Users();
                        u.UserName=dr["UserName"].ToString();
                        u.PassWord=dr["PassWord"].ToString();
                        u.NickName=dr["NickName"].ToString();
                        u.Sex = Convert.ToBoolean(dr["Sex"]);
                        u.Birthday=Convert.ToDateTime(dr["Birthday"]);
                        u.Nation=dr["Nation"].ToString();
    
                        list.Add(u);
                    }
                }
                conn.Close();
    
                return list;
            }

      之后,我学习了属性扩展的内容。

      属性扩展就是将程序中所显示的代码显示为普通用户也可以看懂的字符。这就需要我们在实体类中,给成员变量再添加一个新的属性,该属性只用写上读取,即get{},在主程序中调用这个属性,如:

        private DateTime _Birthday;
            /// <summary>
            /// 生日
            /// </summary>
            public DateTime Birthday
            {
                get { return _Birthday; }
                set { _Birthday = value; }
            }
            public string BirthdayStr
            {
                get { return _Birthday.ToString("yyyy年MM月dd日");}
            }

      若所要更改显示的内容在不同的表中,如:人员管理系统中民族代码改为民族名称(民族代码Nation在人员信息表Users中,而民族代码NationCode和民族名称NationName在民族信息表Nation中),则实体类Users中的代码为:

        private string _Nation;
    
            /// <summary>
            /// 民族
            /// </summary>
            public string Nation
            {
                get { return _Nation; }
                set { _Nation = value; }
            }
            public string NationName
            {
                get
                {
                    NationData Ndata = new NationData();
                    string end = Ndata.select(_Nation);
                    return end;
                }
            }

      而数据访问类NationData中的代码为:

      public class NationData
        {
            SqlConnection conn = null;
            SqlCommand cmd = null;
    
            public NationData()
            {
                conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;");
                cmd = conn.CreateCommand();
            }
    
            public string select(string code)
            {
                string end = "<无>";
    
                cmd.CommandText = "select * from Nation where NationCode=@a";
                cmd.Parameters.Clear();
                cmd.Parameters.Add("@a",code);
    
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if(dr.HasRows)
                {
                    dr.Read();
                    end=dr["NationName"].ToString();
                }
    
                conn.Close();
                return end;
            }
    
        }

      今天,我还了解到了,通过卡断点,可以很好的处理程序中未知的BUG,并且可以很准确的找到BUG的位置。在写函数时,我们把每个函数的功能写的越少,越抽象,那么这个函数被应用的范围就会越广。

  • 相关阅读:
    字节流与字符流的区别?
    启动一个线程是用run()还是start()?
    Java中的异常处理机制的简单原理和应用?
    java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
    Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
    运行时异常与一般异常有何异同?
    常用清除浮动的方法,如不清除浮动会怎样?
    多线程有几种实现方法?同步有几种实现方法?
    你所知道的集合类都有哪些?主要方法?
    至少两种方式实现自适应搜索?
  • 原文地址:https://www.cnblogs.com/hongsen3/p/5872828.html
Copyright © 2011-2022 走看看