• 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 + "	" + a.Name + "	" + a.Sex + "	" +(Convert.ToDateTime(a.Birth)).ToString("yyyy年MM月dd日") + "	" + 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 + "	" + aa.Name + "	" + aa.Sex + "	" + (Convert.ToDateTime(aa.Birth)).ToString("yyyy年MM月dd日") + "	" + aa.Score );
                }
    
                Console.ReadLine();
            }
        }
    }

    泛型集合:

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

  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/zyg316/p/5612835.html
Copyright © 2020-2023  润新知