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( ...
随机推荐
- 在ios android设备上使用 Protobuf (使用dll方式)
http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程可以以.Net 2.0 subset模式运行,请看这个帖子中的方法. 地址:http://g ...
- Windows英文版GitHub客户端使用操作流程图文攻略教程现没中文版
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.作为一个程序员,我们需要掌握其用法. 作为开源代码库以及版本控制系统,Github目前拥有140 ...
- Nginx反向代理和负载均衡——个人配置
#user nobody; worker_processes 2; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- [No00005D]如何高效利用GitHub
原文地址:http://www.yangzhiping.com/tech/github.html 正是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHu ...
- 报错问题:InnoDB: Error: log file ./ib_logfile0 is of different size
InnoDB: Error: log file ./ib_logfile0 is of different size bytesInnoDB: than specified in the .cnf f ...
- 洛谷 U4792 Acheing 单调队列
U4792 Acheing 5通过 43提交 题目提供者Acheing 标签 难度尚无评定 提交 最新讨论 暂时没有讨论 题目背景 题目并没有什么含义,只是想宣传一下自己的博客,Acheing.com ...
- Windows 8.1 新增控件之 Hyperlink
Hyperlink 控件应该不用过多介绍大家肯定十分清楚其作用,它的功能就像HTML中的<a href="">标签一样,只不过是在XAML中实现. 使用Hyperlin ...
- [转]Class 'Think\Log' not found
转自:http://www.thinkphp.cn/topic/26815.html 解决偶尔出现 Class 'Think\Log' not found 的奇葩问题(并非每次必现,偶尔删除缓存可以解 ...
- IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
浏览器兼容问题一直是前段开发工程师比较头痛的问题,熟悉了里面的规则也就变得简单了,这里有一份资料可以分享给大家,大家平时开发过程中遵循这个规律的话,会变得轻松多了: 各浏览器CSS hack兼容表: ...
- java之yield(),sleep(),wait()区别详解
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...