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

时间:2022-11-08 13:48:54

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

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

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

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

数据库信息表:

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();
}
}
}

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

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

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

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

泛型集合:

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

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

  1. ADO&period;NET 实体类和数据访问类

    SQL数据库字符串注入攻击:需要使用cmd.Parameters这个集合占位符: @key 代表这个位置用这个占位符占住了 Parameters这个集合中将此占位符所代表的数据补全 cmd.Param ...

  2. 将java类的泛型集合转换成json对象

    一般用extjs开发传输都是用json比较多,这个将来大家也许会用到... ConvertJsonUtils.java package com.sunweb.util.jsonfactory; imp ...

  3. DataTable填补了实体类返回泛型集合

    坤哥见我昨天找了一段代码,如下面: 略微解释下,这段代码时D层查询结束后,将datatable查询到的结果赋值给实体对象的属性,然后返回实体的过程.坤哥看了之后问我,假设实体有500多个属性,难道也要 ...

  4. DataTable填充实体类返回泛型集合

    昨天找坤哥看到我的一段代码.例如以下: 略微解释下,这段代码时D层查询结束后,将datatable查询到的结果赋值给实体对象的属性,然后返回实体的过程.坤哥看了之后问我.假设实体有500多个属性.难道 ...

  5. Model First:创建实体数据模型&lpar;ADO&period;NET 实体数据模型&rpar;

    Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...

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

    转载于:http://blog.csdn.net/zhoukun1008/article/details/50528145 现在越来越喜欢MVC了,不光是因为ITOO中用到了他,而是因为它里面包含了很 ...

  7. Visual 2015创建新项,缺少ADO&period;NET 实体数据模型的解决方法

    现在的某度查资料真的很麻烦,突然我自身的VS2015创建EF的时候找不到 ADO.NET 实体数据模型,但是使用CodeFrist是可以生成数据表的.所有特别郁闷. 打开界面如下 某度半天,都没有查出 ...

  8. vs212创建mvc3项目,添加ADO&period;NET实体数据模型时产生 XXXX&period;Desiger&period;cs 文件为空

    vs212创建mvc3项目,发现添加ADO.NET实体数据模型时,产生StoreDB.Desiger.cs文件为空 产生StoreDB.Desiger.cs文件为空 原因是,在vs2012中,添加AD ...

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

    熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软 ...

随机推荐

  1. Linux将文件拷到u盘

    1:终端中获取root后,使用fdisk -l来查看位置 2:挂载u盘:mount /路径 /mnt cd /mnt可进入u盘,ls可查看文件 3:复制:cp /(文件路径) /mnt 4:退出u盘: ...

  2. SharePoint 2010&sol;SharePoint 2013 Custom Action&colon; 基于Site Collection 滚动文字的通知&period;

    应用场景: 有时候我们的站点需要在每个页面实现滚动文字的通知,怎么在不修改Master Page的情况下实现这个功能?我们可以使用Javascript 和 Custom Action 来实现. 创建一 ...

  3. 百度预测 及 maven pom搜索地址

    http://trends.baidu.com/ http://mvnrepository.com/artifact/net.sourceforge.htmlcleaner/htmlcleaner/2 ...

  4. jsconsole

    在移动设备或者其他无法启动 chrome developer tools 的时候可以用以下方法进行console 步骤: 1. 进入 http://jsconsole.com 的console画面,在 ...

  5. (一)phoneGap之环境搭建教程及其example分析

    phoneGap之环境搭建教程及其example分析 一.环境搭建 与普通的开发android应用一样,phoneGap也同于原生android应用一样,环境相同,只是有部分不同,下面就我做理解,进行 ...

  6. js中遇到的一些方法和函数

    这是一个笔记文章,方便日后复习. 加号的优先级高于三目运算符: console.log(') ? 'define' : 'undefine');//define setTimeout(code,mil ...

  7. console&period;time和console&period;timeEnd用法

    console.time和console.timeEnd这两个方法可以用来让WEB开发人员测量一个javascript脚本程序执行消耗的时间.随着WEB应用越来越重要,JavaScript的执行性能也 ...

  8. mysql的数据类型- 特别是表示日期&sol;时间的数据类型&colon; 参考&colon; http&colon;&sol;&sol;www&period;cnblogs&period;com&sol;bukudekong&sol;archive&sol;2011&sol;06&sol;27&sol;2091590&period;html

    通常认为: 日期 就是 年-月-日: 时间就是: 小时:分钟:秒 要严格区分"日期"和 "时间"的 说法. 日期就是日期, 时间就是时间, 两者是不同的!! 日 ...

  9. WPF--模板选择

               典型的,把模板关联到一块特定的数据上,不过通常希望动态的确定使用哪个模板---既可以基于一个属性值,也可以是一个全局状态.当真正需要大规模替换模板时,也可以使用DataTempl ...

  10. spring-boot PageHelper

    分页插件PageHelper 参看了pagehelper-spring-boot,使用起来非常放方便,关于更多PageHelper可以点击https://github.com/pagehelper/M ...