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

    数据库访问类查询

    (1)查询一条

     有参数:查询这条信息的主键;

    有返回值:返回值是一个实体类;

    dr.read();执行一遍,读取这行信息并放进users类型中。

            ///返回users实体类类型
            public users chayi(string name)
            {
                users u = null;
                com.CommandText = "select *from users where uname=@name";
                com.Parameters.Clear();
                com.Parameters.Add("@name",name);
                conn.Open();
                SqlDataReader dr = com.ExecuteReader();
                if (dr.HasRows)///判断是否有信息
                {
                    ///读取这行信息并放进users类型中
                    dr.Read();
                    u = new users();///实例化
                    u.uname = dr[0].ToString();
                    u.umima = Convert.ToInt32(dr[1].ToString());
                    u.unicheng = dr[2].ToString();
                    u.usex = Convert.ToBoolean(dr[3].ToString());
                    u.ubir = Convert.ToDateTime(dr[4].ToString());
                    u.uzu = dr[5].ToString();            
                }
    
                conn.Close();
                return u;
            }   

    (2)查询所有

    无参数;

    有返回值:将返回的值放进泛型集合;

    dr.read();循坏读取,每读取一遍,将这行数据放入一个实体类,再把这个实体类放进泛型集合。

    ///返回类型 泛型集合
            public List<users> chasuo() 
            {
            List<users> list=new List<users>();///实例化泛型集合
            users u = null;  
            com.CommandText = "select * from users";
            conn.Open();
            SqlDataReader dr = com.ExecuteReader();
            if(dr.HasRows)///判断是否有信息
            {
                while(dr.Read())//循环读取,每次一行
                {
                    ///将每行数据放入实体类
                    u = new users();///实例化实体类
                    u.uname = dr[0].ToString();
                    u.umima =Convert.ToInt32(dr[1].ToString());
                    u.unicheng = dr[2].ToString();
                    u.usex = Convert.ToBoolean(dr[3].ToString());
                    u.ubir =Convert.ToDateTime( dr[4].ToString());
                    u.uzu = dr[5].ToString();
                    list.Add(u); ///将一个实体类放入泛型集合           
                }        
            }
            conn.Close();
            return list;
            }
    

     遍历集合显示所有信息,每遍历一次显示一行。 

                List<users> list1 = ud.chasuo();//调用查询所有的函数
                Console.WriteLine("姓名" + "	" + "密码" + "	" + "昵称" + "	" + "性别" + "	" + "出生日期" + "	" + "民族");
                if(list1.Count>0)
                {
                foreach(users  u1 in list1)//遍历集合
                {
        
                    Console.WriteLine(u1.uname + "	" + u1.umima +"	" + u1.unicheng + "	" + u1.usexget + "	" + u1.ubirget+"	" + u1.uzuget);
                }            
                }
    

      

    2 属性扩展

    (1)实体类中的成员变量加上一个只读属性,可使显示内容达到我们真正想显示的

     

    private bool _usex;//私有成员变量
            public bool usex //成员变量的属性(可读可写)
            {
                get { return _usex; }
                set { _usex = value; }
            }
            public string usexget //成员变量的属性(只读)
            {
                get { return _usex ? "" : ""; }//可使显示的内容是"男"或"女",而不是bool类型。
    }

     

    (2)可将具有外键关系的列显示内容而不是代号

    A 先将外键连接的表写成两个类:实体类,数据访问类。

    数据访问类 包含一个查询函数:参数是 <外关键字>,返回值是<我们需要显示的内容>。

    B 实体类中外关键字加一个只读属性

    属性中调用外键连接的表数据访问类的查询函数,显示时可将代号改成内容。

           private string _uzu ;//私有成员变量
            public string uzu//成员变量的属性(可读可写)
            {
                get { return _uzu; }
                set { _uzu = value; }
            }
            public string uzuget //成员变量的属性(只读)
            {
                get
                {
                    mingzudata mz = new mingzudata();
                    string mn = mz.cha(_uzu).Mname;//调用外键连接表数据访问类的查询函数
                    return mn;
                }
            
            }

     

  • 相关阅读:
    Centos7.2升级内核至3.10.0-957【转】
    部署一套完整的Kubernetes高可用集群(上)【转】
    Nginx配置中一个不起眼字符"/"的巨大作用,失之毫厘谬以千里【转】
    使用vmware搭建k8s集群【转】
    nginx的request body日志格式配置
    nginx漏洞修复:SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱【原理扫描】【转】
    nginx:[warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    linux系统删除分区
    Linux用户锁定、解锁及锁定查看
    innobackupex远程备份【转】
  • 原文地址:https://www.cnblogs.com/zhang-dandan-1/p/5873486.html
Copyright © 2011-2022 走看看