C# ADO.NET与面向对象
软件开发的三层:界面层,业务逻辑层,数据访问层;
数据访问层:项目添加App_Code文件夹;
实体类:根据数据库表结构,类名和数据库表名一致;
每个成员变量要与数据库表的列相对应,对象正好可以列为一行数据,封装起来;
一个实体类做一个类;
访问权限是public的
数据访问类:起名UsersData;
访问权限是public的
实体类和数据访问类统称为数据访问层,每个表对应一个数据访问层;
新建一个连接字符串的静态的类:
访问权限是public的,必须有一个静态的成员变量,然后封装;
连接字符串:成员变量 = "server =.; Database =Data0908; user =sa; pwd =123;";
在数据访问操作的方法:在数据访问类的构造函数内,可以直接用连接字符串的类名点出来;
在构造函数内可以直接连接数据库:
SqlConnection conn = new SqlConnection();
SqlCommend comm = conn.CreateCommand();
*****写法:
由于构造函数的约束性,可以提升数据库连接类和数据库操作类的作用域:
private SqlConnection conn;
private SqlCommend comm;
public UsersData
{
conn = new SqlConnection(连接字符串的类名.连接字符串的成员变量);
comm = conn.CreateCommand;
}
//返回表中的所有数据
public List <Users> selectAll()
{
List <Users> us = new List<Users>(); //新建一个泛型集合
comm.CommandText = "select * from Users";
conn.Open();
SqlDataReader dr = comm.ExeuteReader();
return us;
}
while(dr.Read()) //如果dr.Read是true进循环;
{
Users u = new Users;
u.Ids = Convert.ToInt32(dr[Ids]);
u.UserName = dr[UserName].ToString();
u.password = dr[password].ToString();
u.NickName = dr[NickName].ToString();
u.Sex = Convert.ToBoolean(dr[Sex]);
u.Birthday = Convert.ToDateTime(dr[Birthday]);
u.NationCold = dr[NationCold].ToString();
us.Add(u);
}
conn.Close();
return us;
}
foreach(Users u in ulist)
{
Console.WriteLine(u.Ids+" | "+u.password);
}
添加:
public bool UsersTianJia(users u)
{
bool result = false; //默认结果false;
cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f)";
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.NationCode);
conn.Open();
int a = comm.ExcuteNonQuery();
conn.Close();
if(a>0)
result = true;
return result;
}
Users user = new Users();
Console.WriteLine("请输入用户名");
user.UserName = Console.ReadLine();
C# ADO.NET与面向对象的更多相关文章
- 【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)
开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类, ...
- C# ADO.NET 面向对象
ADO.NET跟面向对象的结合 把面向对象跟数据库连接用 在项目里面创建一个新的文件夹 名字为App_Code 在这个App_Code里面创建几个类 主要为拆分问题,标上序号,先干什么在干什么 实 ...
- ADO.NET(查询、属性扩展)
一.ADO.NET 融合面向对象的查询语句 1.只查询一条数据 //数据访问中的select方法 public stu select(string xuehao) { stu s = null; cm ...
- C# ADO.NET面向对象想法
我认为的面向对象就是把各种问题拆分开来 逐一解决, 我想的是先是数据库,到底有什么, 然后新建一个类,类里面先是private的私有的,但是可以有无数个可以连接private的pubilc的属性 可 ...
- ado.net 面向对象
面向对象:就是一个大的转换器,建立起一条通道通往数据库然后通过通道将所需(方法)数据从转换器往返于外部界面端 1 首先在项目里创建文件夹: 右击项目———添加个文件夹App_Cod 2 ...
- .NET基础拾遗(2)面向对象的实现和异常的处理基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- .NET基础拾遗(6)ADO.NET与数据库开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...
- ADO.NET Entity Framework 在哪些场景下使用?
在知乎回答了下,顺手转回来. Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的 ...
- Entity Framework 与 面向对象
说要分享,我了个*,写了一半放草稿箱了两个星期都快发霉了,趁着周末写完发出来吧. 文章分为五部分: 基础.类讲述的是用到的一些EF与面向对象的基础: 业务是讲怎么划分设计业务: 设计模式和工作模式讲述 ...
随机推荐
- 【JVM.2】垃圾收集器与内存分配策略
垃圾收集器需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 在前一节中介绍了java内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈3个区域随线程而生,随线程而灭:栈 ...
- Name方法
重命名磁盘文件.目录或文件夹. 语法 Name 旧路径名称 As 新路径名称 “Name”**** 语句语法包含以下部分: 部分 说明 旧路径名称 必需. 字符串表达式,指定现有的文件名和位置;可能包 ...
- if...else 小练习
# 需求:猜年龄,可以让用户最多猜三次 age = 60 for i in range(3): guess = int(input("Input Age: ")) if guess ...
- Charles使用详解
前言: Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析. 一.主界面介绍 二.网页抓包 启动 Cha ...
- PHP 文件写入和读取(必看篇)
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- Linux内核分析——字符集总结与分析
一. 设置修改系统.应用默认字符集 1. 查看虚拟机的字符集: 由此可见,该虚拟机的字符集为zh_CN.UTF-8. 2. 查看服务器支持的编码方式 3. 修改字符集类型 上图可见,LANG字符 ...
- first time to use github
first time to use github and feeling good. 学习软件工程,老师要求我们用这个软件管理自己的代码,网站是全英的,软件也简单易用,方便 https://githu ...
- Fastdfs文件服务器搭建
安装FastDFS之前,先安装libevent工具包.然后要安装libfastcommon和FastDFS,还要依赖nginx来显示图片. 1安装libevent yum -y install lib ...
- 去掉ambiguous expansion of macro警告
查看原文:http://www.heyuan110.com/?p=1221 用pod install后,pod工程里出现ambiguous expansion of macro的warning,对于有 ...
- 【论文笔记】Domain Adaptation via Transfer Component Analysis
论文题目:<Domain Adaptation via Transfer Component Analysis> 论文作者:Sinno Jialin Pan, Ivor W. Tsang, ...