数据模型和数据访问类以及属性扩展和泛型集合
Posted 马MZJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据模型和数据访问类以及属性扩展和泛型集合相关的知识,希望对你有一定的参考价值。
数据模型:
数据模型就是将一个表中一行的所有属性利用封装写到一个类里面,将数据表中的行数据组成一个同样结构的对象,方便使用。
1 public class Car 2 { 3 SqlConnection conn = null; 4 SqlCommand com = null; 5 public Car() 6 { 7 conn = new SqlConnection("server=.;database=ADOlianxi0425;user=sa;pwd=123;"); 8 com = conn.CreateCommand(); 9 } 10 private int _ids; 11 12 public int Ids 13 { 14 get { return _ids; } 15 set { _ids = value; } 16 } 17 private string _code; 18 19 public string Code 20 { 21 get { return _code; } 22 set { _code = value; } 23 } 24 private string _name; 25 26 public string Name 27 { 28 get { return _name; } 29 set { _name = value; } 30 } 31 private string _brand; 32 33 public string Brand 34 { 35 get { return _brand; } 36 set { _brand = value; } 37 } 38 private DateTime _time; 39 40 public DateTime Time 41 { 42 get { return _time; } 43 set { _time = value; } 44 } 45 private decimal _oil; 46 47 public decimal Oil 48 { 49 get { return _oil; } 50 set { _oil = value; } 51 } 52 private int _powers; 53 54 public int Powers 55 { 56 get { return _powers; } 57 set { _powers = value; } 58 } 59 private int _exhaust; 60 61 public int Exhaust 62 { 63 get { return _exhaust; } 64 set { _exhaust = value; } 65 } 66 private decimal _price; 67 68 public decimal Price 69 { 70 get { return _price; } 71 set { _price = value; } 72 } 73 private string _pic; 74 75 public string Pic 76 { 77 get { return _pic; } 78 set { _pic = value; } 79 } 80 81 }
数据访问类:
数据访问类是在一个类中写下某一个表的增删改查操作的方法,方便统一管理和调用。
1 public List<Car> select(string c, string d, string e) 2 { 3 List<Car> list = new List<Car>();//定义一个泛型集合,里面放的类型是前面写的数据结构类 4 b.CommandText = "select * from car where name like @name and oil like @oil and powers like @powers"; 5 b.Parameters.Clear(); 6 b.Parameters.Add("@name", "%" + c + "%"); 7 b.Parameters.Add("@oil", "%" + d + "%"); 8 b.Parameters.Add("@powers", "%" + e + "%"); 9 a.Open(); 10 SqlDataReader f = b.ExecuteReader(); 11 if (f.HasRows) 12 { 13 while (f.Read()) 14 { 15 Car cc = new Car();//将表中的每行数据查询出来然后全部转换成定义好的数据结构类 16 cc.Ids = Convert.ToInt32(f["ids"]); 17 cc.Code = f["code"].ToString(); 18 cc.Name = f["name"].ToString(); 19 cc.Brand = f["brand"].ToString(); 20 cc.Time = Convert.ToDateTime(f["time"]); 21 cc.Oil = Convert.ToDecimal(f["oil"]); 22 cc.Powers = Convert.ToInt32(f["powers"]); 23 cc.Exhaust = Convert.ToInt32(f["exhaust"]); 24 cc.Price = Convert.ToDecimal(f["price"]); 25 cc.Pic = f["pic"].ToString(); 26 27 list.Add(cc);//用上面定义好的泛型集合存放数据库表中的所有数据 28 } 29 } 30 a.Close(); 31 return list; 32 }
数据模型和数据访问类一般都会单独建立文件夹存放,在用的时候首先都要吧类的访问权限变成public,然后都需要引用命名空间才可以调用。
属性扩展:
简单来说就是利用表的外键和数据模型中的已有属性来获得一个查询其他表中数据的属性或者方法,本质上就是sqlserver中的子查询。
1 /// <summary> 2 /// 写成方法用起来一样,没有差别,memo是brand表中的数据,brand表中的brand_code是car表中brand的外键。 3 /// </summary> 4 public string memo 5 { 6 get 7 { 8 string JJ = ""; 9 10 com.CommandText = "select * from brand where brand_code = @brand"; 11 com.Parameters.Clear(); 12 com.Parameters.Add("@brand", _brand); 13 conn.Open(); 14 SqlDataReader dr = com.ExecuteReader(); 15 if (dr.HasRows) 16 { 17 dr.Read(); 18 JJ = dr["brand_name"].ToString(); 19 } 20 conn.Close(); 21 return JJ; 22 } 23 }
泛型集合:
List<X> a = new List<X>();
X的地方放数据类型,实例化什么类型的泛型集合那么这个集合中就只能放这一类型的变量或者对象。
添加数据: .add();
foreach遍历集合
以上是关于数据模型和数据访问类以及属性扩展和泛型集合的主要内容,如果未能解决你的问题,请参考以下文章