ADO.Net创建数据模型和数据访问类及泛型集合

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

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

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

创建一个数据库模型和一个数据库访问类,对学生信息表进行简单的操作

数据库信息表:

create database netlx
go
use netlx
go

create table stu
(
   code nvarchar(50)primary key,
   name nvarchar(50),
   sex nvarchar(10),
   birth datetime,
   score decimal(10,2)
)

insert into stu values(‘s101‘,‘张三‘,‘男‘,‘1995-3-2‘,99)
insert into stu values(‘s102‘,‘李四‘,‘男‘,‘1995-4-2‘,89)
insert into stu values(‘s103‘,‘王五‘,‘男‘,‘1994-3-8‘,95)
insert into stu values(‘s104‘,‘赵六‘,‘男‘,‘1993-8-4‘,79)
insert into stu values(‘s105‘,‘小红‘,‘女‘,‘1996-5-11‘,68)
insert into stu values(‘s106‘,‘张全蛋‘,‘男‘,‘1994-3-2‘,59)
insert into stu values(‘s107‘,‘李三‘,‘男‘,‘1993-9-2‘,90)
insert into stu values(‘s108‘,‘赵红‘,‘女‘,‘1995-6-2‘,89)
insert into stu values(‘s109‘,‘王九‘,‘男‘,‘1994-3-8‘,97)

数据库模型类:

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

namespace 数据库模型和数据库访问类.类对象
{
    //先建立数据模型类
    //数据模型就是将一个表中一行的所有属性利用封装写到一个类里面,
    //将数据表中的行数据组成一个同样结构的对象,方便使用
    public class fangfa //将数据库表的数据建立成一个类的形式
    {
        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 _Sex;
        /// <summary>
        /// 性别
        /// </summary>
        public string Sex
        {
            get { return _Sex; }
            set { _Sex = value; }
        }
        private DateTime _Birth;
        /// <summary>
        /// 生日
        /// </summary>
        public DateTime Birth
        {
            get { return _Birth; }
            set { _Birth = value; }
        }
        private decimal _Score;
        /// <summary>
        /// 成绩
        /// </summary>
        public decimal Score
        {
            get { return _Score; }
            set { _Score = value; }
        }
    }
}

数据库访问类:

using System.Text;
using System.Data.SqlClient;
using 数据库模型和数据库访问类.类对象;//这个类使用到了模型类,需要引用命名空间
namespace 数据库模型和数据库访问类.连接数据库
{
    //数据访问类:
    //数据访问类是在一个类中写下某一个表的增删改查操作的方法,方便统一管理和调用

    public class shujuku
    {
        SqlConnection conn = null;//此处数据连接与操作为空,只定义了变量
        SqlCommand cmd = null;

        public shujuku()//在构造函数中给数据库访问变量进行了赋值,以便于调用这个类时便执行数据库连接操作
        {
            conn=new SqlConnection("server=.;database=netlx;user=sa;pwd=123");
            cmd=conn.CreateCommand();
        }

        /// <summary>
        /// 查询数据库信息
        /// </summary>
        /// <returns></returns>
        public List<fangfa> chaxun() //建立一个函数方法,将数据库模型类里的对象放进泛型集合
        {
            List<fangfa> list = new List<fangfa>();//实例化集合,以便于调用里面对象里的属性
            cmd.CommandText = "select * from stu";//数据操作指令,此处是SQL语句编写
            conn.Open();//打开数据库
            SqlDataReader dr = cmd.ExecuteReader();//执行读取操作,此处将SQL语句在数据库执行后的数据进行读取
            if (dr.HasRows) //变量的dr接收的是读取数据库结果,如果成功读取到了内容
            {
                while (dr.Read()) //便执行这一步
                {
                    fangfa js = new fangfa();//实例化一下数据库模型类,开辟一个内存空间,以便于调用此类里的属性
                    js.Code = dr["code"].ToString();//点出模型类里面的各属性,将读取的数据分别放入里面
                    js.Name = dr["name"].ToString();
                    js.Sex = dr["sex"].ToString();
                    js.Birth = Convert.ToDateTime(dr["birth"]);
                    js.Score = Convert.ToDecimal(dr["score"]);

                    list.Add(js);//循环将接收的每一条数据放进泛型集合
                }
            }
            conn.Close();//关闭数据库
            return list;//将集合内放置的所有数据返回出去
        }
        /// <summary>
        /// 条件查询数据库信息
        /// </summary>
        /// <param name="name">参数</param>
        /// <returns>返回值</returns>
        public List<fangfa> cx(string name) //此操作和查询一样,只是多了一个参数,根据获取的参数到
        {                                  //数据库进行查询,最后将查询的结果放进泛型集合返回去
            List<fangfa> li = new List<fangfa>();
            cmd.CommandText = "select * from stu where name like @name";
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@name","%"+name+"%");
            conn.Open();
            SqlDataReader dq = cmd.ExecuteReader();
            if (dq.HasRows)
            {
                while (dq.Read())
                {
                    fangfa ff = new fangfa();
                    ff.Code = dq["code"].ToString();
                    ff.Name = dq["name"].ToString();
                    ff.Sex = dq["sex"].ToString();
                    ff.Birth = Convert.ToDateTime(dq["birth"]);
                    ff.Score = Convert.ToDecimal(dq["score"]);

                    li.Add(ff);
                }
            }
            conn.Close();
            return li;
        }
    }
}

项目:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using 数据库模型和数据库访问类.类对象;//命名空间的引用,才可以调用到类中的属性方法
using 数据库模型和数据库访问类.连接数据库;
namespace 数据库模型和数据库访问类
{
    class Program
    {
        static void Main(string[] args)
        {
            List<fangfa> data = new shujuku().chaxun();//实例化
            foreach (fangfa a in data)
            {
                Console.WriteLine(a.Code + "\t" + a.Name + "\t" + a.Sex + "\t" +(Convert.ToDateTime(a.Birth)).ToString("yyyy年MM月dd日") + "\t" + a.Score );
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("请输入要查询的学生姓名或者姓名关键字:");
            string nname = Console.ReadLine();
            data = new shujuku().cx(nname);

            foreach (fangfa aa in data)
            {
                Console.WriteLine(aa.Code + "\t" + aa.Name + "\t" + aa.Sex + "\t" + (Convert.ToDateTime(aa.Birth)).ToString("yyyy年MM月dd日") + "\t" + aa.Score );
            }

            Console.ReadLine();
        }
    }
}

泛型集合:

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

时间: 2024-12-29 12:01:05

ADO.Net创建数据模型和数据访问类及泛型集合的相关文章

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

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> /// 汽车编号 /// &

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

数据模型: 数据模型就是将一个表中一行的所有属性利用封装写到一个类里面,将数据表中的行数据组成一个同样结构的对象,方便使用. 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

ADO.NET 实体类和数据访问类

SQL数据库字符串注入攻击:需要使用cmd.Parameters这个集合占位符: @key 代表这个位置用这个占位符占住了 Parameters这个集合中将此占位符所代表的数据补全 cmd.Parameters.Clear(); --添加占位符数据之前,要清空此集合cmd.Parameters.Add("@pwd", Pwd); --占位符内容填充cmd.Parameters.Add("@nname",Nname);cmd.Parameters.Add("

实体类和数据访问类三层开发

实体类,数据访问类 实体类:封装 封装一个类,类名与数据库表名一致,成员变量名与列明一致,多一个下划线 . 成员便令封装玩的属性会与数据表中的列名一致. 每一行数据都可以存成一个对象,操作这个对象,就相当于对某一行数据进行整体操作 数据访问类: 就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用 三层开发: 界面层 - UI层 业务逻辑层 - C#代码部分 数据访问层 - 实体类和数据访问类 就是项目可以从三部分同时进行,一遍布局,一边写方法和封装,一遍写代码,然后再通过调用将几

关于List&lt;&gt;(实体类)泛型集合转DataTable_ONE

// 泛型集合转DataTable,T为Linq实体类 public delegate void GetDataTableRow<T>(T t,System.Data.DataTable d);        public static void ExcelOut2<T>(DataGrid gt, GetDataTableRow<T> GetDataTableRow)        {                            ItemCollection

《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射

转载于:http://blog.csdn.net/zhoukun1008/article/details/50528145 现在越来越喜欢MVC了,不光是因为ITOO中用到了他,而是因为它里面包含了很多的知识点让我们去学习,我们的ITOO在服务端用到了EF和WCF,而对于MVC来说,他也可以与EF合作操作数据库,也可以像WebForm一样为用户显示数据.下面我总结一下用DBFirst来创建实体数据库模型. 1.新建ASP.NET MVC 4 Web 应用程序 2.创建空的模板 3.创建ADO.n

Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源

熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软自己的SQL Server数据源,如果想使用Mysql数据源,得做一些配置. 自己得解决方案如下: 1,导入Entity Framework 6.1.3. 这个是出现ADO.NET实体数据模型选项的前提.如果没有Entity Framework包,新建项菜单中没有ADO.NET实体数据模型选项. 6

Visual Studio 2010缺失ADO.NET 实体数据模型解决方法

解决方法如下:1).到 Visual Studio 2010 的安装包的目录:/WCU/EFTools 中寻找如下文件 ADONETEntityFrameworkTools_chs.msi;ADONETEntityFrameworkTools_chs.cab,将它 们复制自己计算机的某一目录下,例如:X:/EF2).在这个目录下创建文本文件Log.txt(下面命令里要使用到)3).运 行:Visual Studio 命令提示(2010)工具, 访问位置:开始菜单=>Microsoft Visua