ado数据模型和数据访问类,泛型集合

Posted 爱意红沉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ado数据模型和数据访问类,泛型集合相关的知识,希望对你有一定的参考价值。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using 实体类_数据访问类_泛型集合.moxing;//引用命名空间
using 实体类_数据访问类_泛型集合.shujucaozuo;

namespace 实体类_数据访问类_泛型集合
{
    class Program
    {
        static void Main(string[] args)
        {
            List<car> data = new cardata().selectall();//创建一个list的泛型集合 car表的。名称叫data, 
            //接受泛型集合,并打印所有

            foreach (car c in data)
            {
                Console.WriteLine(c.Ids+" "+c.Name+" "+c.brandname+" "+c.strtime);//输出向输出的;
            }

            Console.Write("请输入汽车名称");
            string uname = Console.ReadLine();
            data = new cardata().select(uname);

            Console.Clear();//清空
            foreach (car c in data)
            {
                Console.WriteLine(c.Ids + " " + c.Name + " " + c.Powers+" "+c.strtime);
            }

            Console.ReadLine();
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace 实体类_数据访问类_泛型集合.moxing
{
    public class car//先设置访问类 公共类
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;
        public car()
        {
            conn = new SqlConnection("server=.;database=zuoye;user=sa;pwd=123;");
            cmd = conn.CreateCommand(); 
        }


        //封装
        private int _ids;
        /// <summary>
        /// ID
        /// </summary>
        public int Ids
        {
            get { return _ids; }
            set { _ids = value; }
        }

        private string _code;
        /// <summary>
        /// 汽车编号
        /// </summary>
        public string Code
        {
            get { return _code; }
            set { _code = value; }
        }

        private string _name;
        /// <summary>
        /// 汽车名称
        /// </summary>
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private string _brand;
        /// <summary>
        /// 汽车系别
        /// </summary>
        public string Brand
        {
            get { return _brand; }
            set { _brand = value; }
        }
        public string brandname
        {
            get 
            {
            string bn = "";
            cmd.CommandText = "select *from brand where brand_code= @b";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@b",_brand);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                bn = dr["brand_name"].ToString();
            }
            conn.Close();
            return bn;
            }
        }

        private DateTime _time;
        /// <summary>
        /// 上市时间
        /// </summary>
        public DateTime Time
        {
            get { return _time; }
            set { _time = value; }
        }
        public string strtime
        {
            get { return _time.ToString("yyyy年mm月dd日"); }
        }


        private decimal _oil;
        /// <summary>
        /// 油耗
        /// </summary>
        public decimal Oil
        {
            get { return _oil; }
            set { _oil = value; }
        }

        private int _powers;
        /// <summary>
        /// 马力
        /// </summary>
        public int Powers
        {
            get { return _powers; }
            set { _powers = value; }
        }

        private int _exhaust;
        /// <summary>
        /// 排量
        /// </summary>
        public int Exhaust
        {
            get { return _exhaust; }
            set { _exhaust = value; }
        }

        private decimal _price;
        /// <summary>
        /// 价格
        /// </summary>
        public decimal Price
        {
            get { return _price; }
            set { _price = value; }
        }

        private string _pic;
        /// <summary>
        /// 对应图片
        /// </summary>
        public string Pic
        {
            get { return _pic; }
            set { _pic = value; }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using 实体类_数据访问类_泛型集合.moxing;
using System.Data.SqlClient;

namespace 实体类_数据访问类_泛型集合.shujucaozuo
{
    public class cardata
    {
        //创建了 conn,cmd 两个对象,没有实例化,没有进行赋值,等于null,就是说没有在内存里开辟空间,不能用。
        SqlConnection conn = null;
        SqlCommand cmd = null;
        //没有返还值,和这个类名是一样的
        public cardata()
        {
            //创建类的对象才把conn,cmd,两个给实例化出,写在外边,其他的可以直接调用。
            conn = new SqlConnection("server=.;database=zuoye;user=sa;pwd=123;");
            cmd = conn.CreateCommand();  
        }
        /// <summary>
        /// 查询所有的信息
        /// </summary>
        /// <returns></returns>
        public List<car> selectall()//泛型集合 尖括号里面放的是car这个类 那么 这个尖括号里面只能放这个类,不可以放其他的类
        {
          List<car> list =new List<car>();//创建list的集合。创建放值骑车边的全部信息的泛型集合

            cmd.CommandText = "select * from car ";//查询所有信息,编写tsql语句
            conn.Open();
            //读取执行操作
            SqlDataReader dr = cmd.ExecuteReader();//reader 执行操作  cmd的执行操作与sql里边的操作同步起来,dr定义的变量
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    car c = new car();//创建汽车模型对象,并将对象的内容填全
                    c.Ids = Convert.ToInt32(dr["ids"]);
                    c.Code=dr["code"].ToString();
                    c.Name = dr["name"].ToString();
                    c.Brand = dr["brand"].ToString();
                    c.Time = Convert.ToDateTime(dr["time"]);
                    c.Oil = Convert.ToDecimal(dr["oil"]);
                    c.Powers = Convert.ToInt32(dr["powers"]);
                    c.Exhaust = Convert.ToInt32(dr["exhaust"]);
                    c.Price = Convert.ToDecimal(dr["price"]);
                    c.Pic = dr["pic"].ToString();
                    list.Add(c);//将填好的汽车模型对象放置进泛型集合中
                }
            }


            conn.Close();
          return list;//返回list 这个值
        }

        /// <summary>
        /// 模糊查询骑车表数据
        /// </summary>
        /// <param name="name">需要变量汽车名称</param>
        /// <returns></returns>
        public List<car> select(string name)
        {
            List<car> list = new List<car>();

            cmd.CommandText = "select * from car where name like @name";
            cmd.Parameters.Clear();//parameters,防攻击!!!    清空所有数据
            cmd.Parameters.Add("@name","%"+name+"%");//添加通配符
            conn.Open();
            //读取执行操作
            SqlDataReader dr = cmd.ExecuteReader();//reader 执行操作  cmd的执行操作与sql里边的操作同步起来,dr定义的变量
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    car c = new car();//创建汽车模型对象,并将对象的内容填全
                    c.Ids = Convert.ToInt32(dr["ids"]);
                    c.Code = dr["code"].ToString();
                    c.Name = dr["name"].ToString();
                    c.Brand = dr["brand"].ToString();
                    c.Time = Convert.ToDateTime(dr["time"]);
                    c.Oil = Convert.ToDecimal(dr["oil"]);
                    c.Powers = Convert.ToInt32(dr["powers"]);
                    c.Exhaust = Convert.ToInt32(dr["exhaust"]);
                    c.Price = Convert.ToDecimal(dr["price"]);
                    c.Pic = dr["pic"].ToString();
                    list.Add(c);//将填好的汽车模型对象放置进泛型集合中
                }
            }


            conn.Close();
            return list;
        }
    }
}

 

 

数据模型和数据访问类:
数据模型:
使用面向对象中的封装特性,将数据表中的行数据组成一个同样结构的对象,来单独使用;

数据访问类:
将某一个表的全部增删改查操作的方法写进去,方便统一管理和调用;

数据模型和数据访问类单独创建两个文件件单独放置,方便查看;
注意:单独创建的问题件命名空间会自动更改,调用时需要引用命名空间,并且在创建类时第一步
要把类的访问权限设置为公开的

泛型集合:
List<T> T代表泛型,你给它什么类型,它就代表什么类型
定义:
List<string> li = new List<string>();
实例化什么类型的泛型集合,那么这个集合中就只能放这一种类型的变量或对象
添加数据:
li.Add(数据/变量/对象);
查询:
foreach遍历

 

以上是关于ado数据模型和数据访问类,泛型集合的主要内容,如果未能解决你的问题,请参考以下文章

数据模型和数据访问类以及属性扩展和泛型集合

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

LINQ学习笔记

ADO.NET(课程学习内容)

七数组和集合(一维数组和二维数组的声明以及使用,ArrayList类,HashTable,List,Directory字典等常用集合(泛型和非泛型))

泛型与datatable 转化