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

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

首先,新建文件夹 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. [No00003C]操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore

    操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore 进程合作:多进程共同完成一个任务 从纸上到实际:生产者− − ...

  3. 字符串截取函数substr()

    substr(参数1,参数2[,参数3]); 该系统函数返回被截后的子字符串,它接受2个必选参数,参数1为要截取的字符串,参数2为截取的开始位置,参数3可选,表示截取长度. 例子:substr(&qu ...

  4. phantomjs模拟登录

    最近在做一些公司其他部门系统的后台模拟操作,但由于那边的系统最开始是外包给其他公司开发的,现在那边的开发也不知道有些post的参数是如何生成的.于是想考察下是不是可以把phantomjs这个工具给加进 ...

  5. php中Jpgraph的运用

    用Jpgraph,只要了解它的一些内置函数,可以轻松得画出折线图.柱形图.饼状图等图表. 首先要保证PHP打开了Gd2的扩展: 打开PHP.ini,定位到extension=php_gd2.dll,把 ...

  6. 解决jquery.validate.js的验证bug

    版本提示:jq为1.4.4, jquery.validate 为jQuery validation plug-in 1.7 问题: a.选填选项,如邮箱设置格式验证,那么情况输入框,验证label变成 ...

  7. 【WPF】TextBox样式重写注意事项

    1.普通控件重写需要添加一行 <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="C ...

  8. JS添加DOM元素CSS权重BUG

    修改删除table的时候,比如拆分合并单元格,合并全部TR中的某个TD后在拆分还原,即使直接在td标签中设置了td的高宽属性,当td在css文件中设置为宽度auto的时候,不能显示出TD来,显示TD宽 ...

  9. K-means算法及文本聚类实践

    K-Means是常用的聚类算法,与其他聚类算法相比,其时间复杂度低,聚类的效果也还不错,这里简单介绍一下k-means算法,下图是一个手写体数据集聚类的结果. 基本思想 k-means算法需要事先指定 ...

  10. NVelocity学习笔记一——linq2sql+NVelocity完整demo

    (一)前言      刚刚进入新公司,看公司的项目,发现开发流程几乎和以前的完全不同,再看看页面布局竟然没有发现html.神马情况????一番探究发现使用了NVelocity模板引擎开发的.于是乎花了 ...