ADO.NET 数据访问类查询、属性扩展
今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询。
主程序代码:
List<Users> Ulist = new UsersData().Select();
if (Ulist.Count > )//判断是否包含语句
{
foreach (Users u1 in Ulist)//遍历
{
Console.WriteLine(u1.UserName + " " + u1.PassWord + " " + u1.NickName + " " + u1.Sex + " " + u1.Birthday + " " + u1.Nation);
}
}
UsersData数据访问类中的代码:
public List<Users> Select()
{
List<Users> list=new List<Users>();
cmd.CommandText="select * from Users"; conn.Open();
SqlDataReader dr=cmd.ExecuteReader();
if(dr.HasRows)//判断是否包含数据
{
while(dr.Read())
{
Users u=new Users();
u.UserName=dr["UserName"].ToString();
u.PassWord=dr["PassWord"].ToString();
u.NickName=dr["NickName"].ToString();
u.Sex = Convert.ToBoolean(dr["Sex"]);
u.Birthday=Convert.ToDateTime(dr["Birthday"]);
u.Nation=dr["Nation"].ToString(); list.Add(u);
}
}
conn.Close(); return list;
}
之后,我学习了属性扩展的内容。
属性扩展就是将程序中所显示的代码显示为普通用户也可以看懂的字符。这就需要我们在实体类中,给成员变量再添加一个新的属性,该属性只用写上读取,即get{},在主程序中调用这个属性,如:
private DateTime _Birthday;
/// <summary>
/// 生日
/// </summary>
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
public string BirthdayStr
{
get { return _Birthday.ToString("yyyy年MM月dd日");}
}
若所要更改显示的内容在不同的表中,如:人员管理系统中民族代码改为民族名称(民族代码Nation在人员信息表Users中,而民族代码NationCode和民族名称NationName在民族信息表Nation中),则实体类Users中的代码为:
private string _Nation;
/// <summary>
/// 民族
/// </summary>
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
}
public string NationName
{
get
{
NationData Ndata = new NationData();
string end = Ndata.select(_Nation);
return end;
}
}
而数据访问类NationData中的代码为:
public class NationData
{
SqlConnection conn = null;
SqlCommand cmd = null; public NationData()
{
conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;");
cmd = conn.CreateCommand();
} public string select(string code)
{
string end = "<无>"; cmd.CommandText = "select * from Nation where NationCode=@a";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a",code); conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if(dr.HasRows)
{
dr.Read();
end=dr["NationName"].ToString();
} conn.Close();
return end;
} }
今天,我还了解到了,通过卡断点,可以很好的处理程序中未知的BUG,并且可以很准确的找到BUG的位置。在写函数时,我们把每个函数的功能写的越少,越抽象,那么这个函数被应用的范围就会越广。
ADO.NET 数据访问类查询、属性扩展的更多相关文章
- ADO.NET(完整修改和查询、实体类,数据访问类)
一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...
- 9_13学习完整修改和查询&&实体类,数据访问类
完整修改和查询:中间变量运用. 1.先查 2.执行操作 ---------------------------------------------------- namespace ADO.NET_小 ...
- ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)
ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...
- ADO,NET 实体类 和 数据访问类
啥也不说,看代码. --SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) pr ...
- ADO.NET 【实体类】【数据访问类】
认识分层结构,分层式结构是最常见,也是最重要的一种结构. 三层架构(3-tier architecture) 界面层(User Interface layer) 主要对用户的请求接受,以及数据的返回, ...
- ado.net 实体类_数据访问类
实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- ADO.net 实体类 、数据访问类
程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...
- 【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)
开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类, ...
- C#-ade.net-实体类、数据访问类
实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等 ...
随机推荐
- PHP学习过程_Symfony_(4)_命令创建实体_以及实体关系
//项目运行php app/console server:run//创建实体php app/console doctrine:generate:entitybundle名称:实体名称例如:Symfon ...
- 驱动相关Error
驱动中 fltKernel.h报 EPROCESS和PETHREAD重定义异常解决办法 驱动编写中经常会莫名出现 error C2371: 'PEPROCESS' : redefinition; di ...
- C#删除只读文件或文件夹(解决File.Delete无法删除文件)
引用: http://www.jb51.net/article/72181.htm C#删除只读文件的方法: if (File.GetAttributes(FFName).ToString().I ...
- Nginx redirect
if ($host != 'www.xxxxx.com' ) { rewrite ^/(.*)$ http://www.xxxx.com/$1 permanent; }
- centos6.8安装superctl 后台管理工具
下载安装python yum install python-setuptools 从官网下载supervisor包 https://pypi.python.org/pypi/supervisor 解压 ...
- 私有云Mariadb集群搭建
MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性, 同时提高系统的负载能力,集群部署是必不可少的. MariaDB Gale ...
- iOS学习之Runtime(二)
前面已经介绍了Runtime系统的概念.作用.部分技术点和应用场景,这篇将会继续学习Runtime的其他知识. 一.Runtime技术点之类/对象的关联对象 关联对象不是为类/对象添加属性或者成员变量 ...
- sql优化方式-转载
我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软件生命周期的不同阶段来 ...
- SPA 单页面应用
SPA一般只一个web页面,通过ajax,router等技术实现局部刷新,不会随着用户操作而出现重新加载页面或者页面跳转的功能,所有的用户操作都在一个页面实现. 组件化:UI组件和非UI组件 传统的u ...
- QT源码剖析之QSS样式表
1. "QApplication::setStyleSheet()"设置样式表: 1. 创建新的样式表. 2. 设置新的样式. void QApplication::setStyl ...