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 ,用于存放数据库类等 ...
随机推荐
- 让webstorm支持新建.vue文件
1. 首先安装vue插件,安装方法: file-->setting --> plugin ,点击plugin,在内容部分的左侧输入框不用输入任何东西,直接点击下图中的按钮. 如下图所 ...
- python numpy基础 数组和矢量计算
在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...
- Linux Tomcat 自启动
使用chkconfig命令 修改tomcat/bin/startup.sh,在开头的地方添加如下内容 #chkconfig: #description:tomcat auto start #proce ...
- 移动app安全测试
安全方面逐渐转向app安全,服务端app安全测试基本上跟常规的web方面挖掘差不多,只是增加了一个反编译或抓包的过程. 参考文献: http://drops.wooyun.org/tips/749 h ...
- C# 语言规范_版本5.0 (第14章 枚举)
1. 枚举 枚举类型 (enum type) 是一种独特的值类型(第 4.1 节),它用于声明一组命名的常量. 下面的示例 enum Color { Red, Green, Blue } 声明一个名为 ...
- google浏览器图标显示不正常怎么办
taskkill /f /im explorer.exe rem 清理系统图标缓存数据库 attrib -h -s -r "%userprofile%\AppData\Local\IconC ...
- win10系统 L2TP连接尝试失败:ERROR因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
1 确保IPsec Policy Agent服务已启动 2 确保路由和远程访问(Routing and Remote Access)和远程访问连接管理器服务(Remote Access Connect ...
- each用法的总结
1.选择器+遍历 $('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象 }); 2.选择器+遍历 $('div').each(function ...
- [妙味JS基础]第十一课:字符串、查找高亮显示
知识点总结 字符串方法 var str = '2014年新春快乐哈' * length 字符串长度 str.length =>10 ------------------------------- ...
- Java中SJBArrayList自己简单实现ArrayList
/** * 自己实现ArrayList * @author zyyt * */ public class SJBArrayList { //存放SJBArrayList中的元素 transient O ...