ADO数据库访问类查询属性扩展

Posted zhangdandan1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ADO数据库访问类查询属性扩展相关的知识,希望对你有一定的参考价值。

数据库访问类查询

(1)查询一条

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

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

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

        ///返回users实体类类型
        public users chayi(string name)
        {
            users u = null;
            com.CommandText = "select *from users where [email protected]";
            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("姓名" + "\t" + "密码" + "\t" + "昵称" + "\t" + "性别" + "\t" + "出生日期" + "\t" + "民族");
            if(list1.Count>0)
            {
            foreach(users  u1 in list1)//遍历集合
            {
    
                Console.WriteLine(u1.uname + "\t" + u1.umima +"\t" + u1.unicheng + "\t" + u1.usexget + "\t" + u1.ubirget+"\t" + 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;
            }
        
        }

 

 

 

 

以上是关于ADO数据库访问类查询属性扩展的主要内容,如果未能解决你的问题,请参考以下文章

Linq基础+Lambda表达式对数据库的增删改及简单查询

ADO.Net——扩展属性和配置文件应用

ado创建数据模型和数据访问类

ADO.NET 二(Connection)

ADO.Net 数据库访问技术

ListView 控件