实体类、数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码

实体类是按照数据库表的结构封装起来的一个类

首先,新建文件夹 App_Code ,用于存放数据库类等类文件,新建类,例如: Users(与数据库访问的表同名)和 UsersData

在类UsersData里写数据库访问方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient; namespace lxc_属性扩展.APP_Code
{
public class UsersData
{
SqlConnection conn = null;
SqlCommand cmd = null; public UsersData()//主函数实例化时自动实例化下列 数据库连接类 和 数据库操作类 语句
{
conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=asdf");
cmd = conn.CreateCommand();
} /// <summary>
/// 将数据加入到数据库中,如果返回true说明添加成功
/// </summary>
/// <param name="u">要加入到数据库表中的Users对象</param>
/// <returns></returns>
public bool Insert(Users u)
{
bool ok = false;
cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a", u.Username);
cmd.Parameters.AddWithValue("@b", u.Password);
cmd.Parameters.AddWithValue("@c", u.Nickname);
cmd.Parameters.AddWithValue("@d", u.Sex);
cmd.Parameters.AddWithValue("@e", u.Birthday);
cmd.Parameters.AddWithValue("@f", u.Nation);
cmd.Parameters.AddWithValue("@g", u.Class);
int count = ;
conn.Open();
count = cmd.ExecuteNonQuery();
conn.Close();
if (count > )
ok = true;
return ok;
} /// <summary>
/// 将数据从数据库中删除,如果返回true说明删除成功
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public bool Delete(string username)
{
bool ok = false;
cmd.CommandText = "delete from Users where username=@a";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a", username);
int count = ;
conn.Open();
count = cmd.ExecuteNonQuery();
conn.Close();
if (count > )
ok = true;
return ok;
} /// <summary>
/// 对数据库中的数据进行修改,如果返回true说明修改成功
/// </summary>
/// <param name="username"></param>
/// <param name="u"></param>
/// <returns></returns>
public bool Update(string username, Users u)
{
bool ok = false;
cmd.CommandText = "update Users set username=@a,password=@b,nickname=@c,sex=@d,birthday=@e,nation=@f,class=@g where username=@un";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a", u.Username);
cmd.Parameters.AddWithValue("@b", u.Password);
cmd.Parameters.AddWithValue("@c", u.Nickname);
cmd.Parameters.AddWithValue("@d", u.Sex);
cmd.Parameters.AddWithValue("@e", u.Birthday);
cmd.Parameters.AddWithValue("@f", u.Nation);
cmd.Parameters.AddWithValue("@g", u.Class);
cmd.Parameters.AddWithValue("@un", username);
int i = ;
conn.Open();
i = cmd.ExecuteNonQuery();
conn.Close();
if (i > )
ok = true;
return ok;
} /// <summary>
/// 查询数据库中所有的数据,返回List<>集合
/// </summary>
/// <returns></returns>
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.Ids = (int)dr["ids"];
u.Username = dr["username"].ToString();
u.Password = dr["password"].ToString();
u.Nickname = dr["nickname"].ToString();
u.Sex = (Boolean)dr["sex"];
u.Birthday = (DateTime)dr["birthday"];
u.Nation = dr["nation"].ToString();
u.Class = dr["class"].ToString(); list.Add(u);
}
}
conn.Close();
return list;
} /// <summary>
/// 查询数据库中某条数据,返回List<>集合
/// </summary>
/// <param name="username">要查询的数据的用户名</param>
/// <returns></returns>
public List<Users> Select(string username)
{
List<Users> list = new List<Users>();
cmd.CommandText = "select *from Users where username=@a";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a", username); conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
Users u = new Users();
u.Ids = (int)dr["ids"];
u.Username = dr["username"].ToString();
u.Password = dr["password"].ToString();
u.Nickname = dr["nickname"].ToString();
u.Sex = (Boolean)dr["sex"];
u.Birthday = (DateTime)dr["birthday"];
u.Nation = dr["nation"].ToString();
u.Class = dr["class"].ToString(); list.Add(u);
}
conn.Close();
return list;
}
}
}

数据访问类-操作代码

在主函数中调用方法即可

C#-ade.net-实体类、数据访问类的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类

    字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入  a');up ...

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

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

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

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

  9. ADO.NET 数据访问类查询、属性扩展

    今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询. 主程序代码: List<Users> Ulist = new UsersData().Select( ...

随机推荐

  1. QuickFix/J 源代码

    三). 客户化FIX解析 基础知识:以下文章内容描述的前提是已经根据自己的业务规则,生成了符合要求的数据字典,并且使用QuickFix/J自带的 ant 的 jar target生成了客户化的协议解析 ...

  2. Android应用程序(APK)的编译打包过程

    (9878) (7) 现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的 ...

  3. JS中new都是干了些什么事情

    var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...

  4. checkbox与jq<转>2

    jQuery中attr()解决checked属性问题 作者:u012885111 这两天在做一个表单提交,其中就包含有checkbox的全选和反选,这是最先开始做出来的版本,代码如下: <inp ...

  5. 用Javascript判断访问来源操作系统, 设备, 浏览器类型

    var browser = { os : function() { var u = navigator.userAgent; return {// 操作系统 linux: !!u.match(/\(X ...

  6. Delphi项目的构成

    Hello.cfg 項目配置文件 Hello.dof 項目選項文件 Hello.dpr 項目文件 Hello.exe 應用程序 Hello.res 資源文件 HelloWorld.dcu 窗口編譯文件 ...

  7. workqueue机制分析之process_one_work分析

    工作者线程不断执行,从work_poll结构中卸下一个work, 然后进入函数process_one_work 来执行这个work. process_one_work(struct worker *w ...

  8. 03Spring_bean的创建和作用域以及生命周期

    bean的三种创建方式: 方式一: 使用类构造器实例化对象 <!-- 方式一  使用构造器(无参数)实例化对象  --> <bean id="bean1" cla ...

  9. Linux socket多进程服务器框架三

    在使用select管理服务器连接的时候: 注意1:select是可中断睡眠函数,需要屏蔽信号 注意2:必须获取select的返回值nread,每次处理完一个事件,nread需要-1 注意3:如果客户端 ...

  10. node基础02:第一个node程序

    1.第一个web服务器 var http = require("http"); http.createServer(function(request, response){ res ...