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数据模型和数据访问类,泛型集合的主要内容,如果未能解决你的问题,请参考以下文章
七数组和集合(一维数组和二维数组的声明以及使用,ArrayList类,HashTable,List,Directory字典等常用集合(泛型和非泛型))