今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询。

  主程序代码:

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 数据访问类查询、属性扩展的更多相关文章

  1. ADO.NET(完整修改和查询、实体类,数据访问类)

    一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...

  2. 9_13学习完整修改和查询&&实体类,数据访问类

    完整修改和查询:中间变量运用. 1.先查 2.执行操作 ---------------------------------------------------- namespace ADO.NET_小 ...

  3. ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)

    ADO.NET(一) 空间   ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...

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

    啥也不说,看代码. --SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) pr ...

  5. ADO.NET 【实体类】【数据访问类】

    认识分层结构,分层式结构是最常见,也是最重要的一种结构. 三层架构(3-tier architecture) 界面层(User Interface layer) 主要对用户的请求接受,以及数据的返回, ...

  6. ado.net 实体类_数据访问类

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  7. ADO.net 实体类 、数据访问类

    程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...

  8. 【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)

    开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类, ...

  9. C#-ade.net-实体类、数据访问类

    实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等 ...

随机推荐

  1. android应用编译失败 ResXMLTree_node size 类错误,以及 android studio 项目内搜索

    今天很郁闷,又遇到个很让人崩溃的问题: ResXMLTree_node size 0 is smaller than header size 0x45. 类似这样的错误,提示中看不出任何有用的内容,网 ...

  2. APP模板框架

    HTML页面 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...

  3. CSS display:inline-block的元素特点:

    将对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行内,允许空格. 在CSS中,块级对象元素会单独占一行显示,多个block元素会各自新起一行,并且可以设置width,h ...

  4. CSS绑定

    css绑定会对元素的CSS类进行操作.在某些情况下这将非常有用,例如:当数值是负的时将其高亮显示. (注:如果如果不想直接更改CSS类,而是只要改其中一个样式,则需要使用style绑定) 示例:使用静 ...

  5. Codeforces Round #346 (Div. 2) C Tanya and Toys

    C. Tanya and Toys 题目链接http://codeforces.com/contest/659/problem/C Description In Berland recently a ...

  6. 非root用户搭建hadoop伪分布式

    0.安装软件列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar   1.准备Linux环境(root ...

  7. qtp childObjects用法

    ChildObjects: Returns the collection of child objects contained within the object. F1帮助解释:返回当前调用对象的所 ...

  8. Git忽略对特定文件的跟踪和提交

    1.有未提交过的文件,并且此文件项目组中的其他人员也需要忽略,可将此文件的完整路径写入项目文件夹下的.gitignore文件. 2.有未提交过的文件,此这些文件与项目组中的其他人员无关,毋须写入.gi ...

  9. 关于微信端不支持window.location.reload()

    今天写了一个调查问卷页面,项目经理说要表单提交之后页面刷新,之间没沟通清楚,以为整个页面重载,所以刚开始就用了window.location.reload()的方法. 但是发现,在微信直接打开之后,居 ...

  10. 判断是否点击键盘enter键

    //enter键监测触发事件 function checkKeyCode() { document.onkeydown = function(e) { if(!e) e = window.event; ...