ado创建数据模型和数据访问类
Posted 枫炎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ado创建数据模型和数据访问类相关的知识,希望对你有一定的参考价值。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication14.model { class car { //建立数据模型 //car数据表的各项属性建立成一个类的形式 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; } } private DateTime _Time; /// <summary> /// 上市时间 /// </summary> public DateTime Time { get { return _Time; } set { _Time = value; } } 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 System.Threading.Tasks; using ConsoleApplication14.model; using System.Data.SqlClient; namespace ConsoleApplication14.dataoperation { class cardata { SqlConnection conn = null;//声明数据连接变量,用于cardata类里所有函数 SqlCommand cmd = null;//声明数据命令变量,用于cardata类里所有函数 //创建构造函数,调用该类便立即进行数据连接和数据操作命令的创建 public cardata() { conn = new SqlConnection("server=.;database=data0425;user=sa;pwd=123;");//创建数据连接 cmd = conn.CreateCommand();//创建数据操作 } //建立一个查询car表格的函数方法 /// <summary> /// 查询car表里的所有数据 /// </summary> /// <returns>泛型集合类型</returns> public List<car> selectall() { //实例化泛型集合,以便于调用里面的属性 List<car> list = new List<car>(); //编写数据操作指令 cmd.CommandText = "select * from car"; //开启数据库 conn.Open(); //执行读取操作命令 SqlDataReader dr = cmd.ExecuteReader(); if(dr.HasRows) { while(dr.Read()) { //初始化car类,为car类开辟一个内存空间,以便于调用car类里的属性 car c = new car(); //为car每个属性里赋值 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(); //将car类c里的数值放到泛型集合list内 list.Add(c); } } //关闭数据库 conn.Close(); //返回泛型集合类型的值 return list; } //建立用汽车姓名模糊查询的函数 public List<car> selectname(string name)//该函数有返回值,有参数,返回值是泛型集合类型,参数是string类型 { //定义一个泛型集合类型的返回值 List<car> list=new List<car>(); //编写查询指令语句 cmd.CommandText = "select * from car where Name like @name"; //防注入式字符串攻击 cmd.Parameters.Clear(); cmd.Parameters.Add("@name","%"+name+"%"); //数据库开启 conn.Open(); //执行数据读取操作 SqlDataReader dr = cmd.ExecuteReader(); if(dr.HasRows) { while(dr.Read()) { //初始化一个car类型的变量来接收数据库car表里的每条数据 car c = new car(); //用c里面的每一个属性接收car表里的每一条记录 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集合中 list.Add(c); } } //数据库关闭 conn.Close(); //返回list值 return list; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ConsoleApplication14.dataoperation; using ConsoleApplication14.model; namespace ConsoleApplication14 { class Program { static void Main(string[] args) { //建立数据模型和数据访问类 //查询数据库里data0425数据库类car表的所有内容 //引用命名空间 //定义查询函数的返回类型为泛型集合list类, //所有要首先初始化一个变量接收cardata类里面查询函数selectall里面的值 List<car> data = new cardata().selectall(); //打印出data 里面的值需要使用遍历集合 foreach(car c in data)//泛型集合里面的类型是car类型 { Console.WriteLine(c.Code+" "+c.Name+" "+c.Brand+" "+c.Time+" "+c.Oil+" "+c.Powers+" "+c.Exhaust+" "+c.Price+" "+c.Pic); } while(true) { //建立一个汽车名字的模糊查询 Console.Write("请输入汽车姓名:"); string uname = Console.ReadLine(); //调用函数,用已经初始化并赋值的data变量接收,同时用新的值覆盖data变量里原来的值 data = new cardata().selectname(uname); //打印数据 Console.Clear(); foreach (car c in data)//泛型集合里面的类型是car类型 { Console.WriteLine(c.Code + " " + c.Name + " " + c.Brand + " " + c.Time + " " + c.Oil + " " + c.Powers + " " + c.Exhaust + " " + c.Price + " " + c.Pic); } } Console.ReadKey(); } } }
以上是关于ado创建数据模型和数据访问类的主要内容,如果未能解决你的问题,请参考以下文章
关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析
无法在 ADO .NET 实体模型 edmx 中的类继承中执行覆盖
Visual Studio2017中如何让Entity Framework工具ADO.NET实体数据模型支持MYSQL数据源