C#-ade.net-实体类、数据访问类
实体类、数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码
实体类是按照数据库表的结构封装起来的一个类
首先,新建文件夹 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-实体类、数据访问类的更多相关文章
- ado.net 实体类_数据访问类
实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- 9_13学习完整修改和查询&&实体类,数据访问类
完整修改和查询:中间变量运用. 1.先查 2.执行操作 ---------------------------------------------------- namespace ADO.NET_小 ...
- ADO.net 实体类 、数据访问类
程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...
- ADO,NET 实体类 和 数据访问类
啥也不说,看代码. --SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) pr ...
- ADO.NET(完整修改和查询、实体类,数据访问类)
一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...
- 【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类
字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入 a');up ...
- ADO.NET 【实体类】【数据访问类】
认识分层结构,分层式结构是最常见,也是最重要的一种结构. 三层架构(3-tier architecture) 界面层(User Interface layer) 主要对用户的请求接受,以及数据的返回, ...
- 【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)
开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类, ...
- ADO.NET 数据访问类查询、属性扩展
今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询. 主程序代码: List<Users> Ulist = new UsersData().Select( ...
随机推荐
- java.io.IOException: 您的主机中的软件中止了一个已建立的连接解决办法
问题现象和http://hi.baidu.com/cara_cloud/item/193a3ee327546d395a2d64be描述的一样,就是在eclipse的console栏中一直显示java. ...
- pullRefresh组件配置
mui.init({ pullRefresh:{ container: '#contanier', indicators:false, up:{ height:200, contentinit: '' ...
- django整合原有的mysql数据库
虽然django适合从零开始构建一个项目,但有时候整合原有的数据库也在所难免,下面以django整合我的mysql作说明. mysql数据是我从京东上抓取的数据,数据表名为jd,演示如图 下面将jd整 ...
- CodeSmith 使用说明
〇. 前言 最近两天自己写了个简单的ORM框架,非常的Easy,但是没有相应的代码生成工具,于是就很杯具了! 于是乎,花费了一天的时间学习并写了一个CodeSmith可以使用的模 ...
- 003商城项目:数据库的创建以及ssm框架的整合
我们创建一个数据库.如下: 然后开始整合框架: 先给出整合框架的思路: 我们的Dao层用的是Mybatis,其实Mybatis与Spring整合要做的就是把他的数据库连接这部分全部交给Spring来 ...
- Swagger 增加 DocumentFilter 隐藏不需要显示的接口
services.ConfigureSwaggerGen(options => { options.SingleApiVersion(new Info { Version = "v1& ...
- JPA 教程
Entities An entity is a lightweight persistence domain object. Typically an entity represents a tabl ...
- Linux时间函数之gettimeofday()函数之使用方法
1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/time.h> int gettimeofda ...
- youtube下载
http://jingyan.baidu.com/article/39810a23d2deb2b637fda66c.html
- stringstream的用法【转】
[本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/ ...