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

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

首先,新建文件夹 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. Windows系统Stunnel客户端的配置

    Stunnel官方就有Windows版本,到下面的地址下载: https://www.stunnel.org/downloads.html 选择”stunnel-X.XX-installer.exe“ ...

  2. Eclipse 搜索插件 instasearch

    http://marketplace.eclipse.org/content/instasearch

  3. luogu10125回文数[noip1999 Day1 T1]

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  4. 使用javascript实现html页面直接下载网盘文件

    公司新建一网站,用的是商派的易开店系统.设计方案中有一个是下载文件的功能,但易开店不支持上传资源,所以无法下载本站资源. 于是想到了网盘资源下载,有些网站是把页面链接到网盘资源文件下载页面,进行二次跳 ...

  5. 迭代器和for-of循环 顺便带一下Es5中的.map遍历

    let set = new Set(); //set方法去除重复的数据 [1, 2, 3, 4, 2, 8, 4].map(function (elem) { set.add(elem); //遍历完 ...

  6. Nginx 启用 https

    在nginx.conf中增加新server配置 server { listen ; server_name www.some.com; ssl on; ssl_certificate sslkey/s ...

  7. HashTable, HashMap, LinkedHashMap, ConcurrentHashMap

    HashTable: 不允许null的key或value, 线程安全 HashMap: 允许一个null的key, 无限的null value, 非线程安全 LinkedHashMap: HashMa ...

  8. KeyBord事件从Activtiy层往下分发详细过程代码示例

    step1:调用Activity成员函数dispatchKeyEvent public boolean dispatchKeyEvent(KeyEvent event) { // Let action ...

  9. 【C#】【Thread】Semaphore/SemaphoreSlim信号量

    System.Threading.Semaphore 类表示一个命名(系统范围)信号量或本地信号量. 它是一个对 Win32 信号量对象的精简包装. Win32 信号量是计数信号量,可用于控制对资源池 ...

  10. CefSharp的引用、配置、实例

    CefSharp的引用.配置.实例与报错排除(源码) Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfro ...