操作数据类

避免代码重用、造对象太多、不能分工开发

利用面向对象的方法,把数据访问的方式优化一下,利用封装类

 

一般封装成三个类:

1.数据连接类 提供数据连接对象

需要引用命名空间: using System.Data.SqlClient;

例:

    public class DBConnect{private static string connstring = "server=.;database=mydb;user=sa;pwd=123";public static SqlConnection Conn      //利用静态的方法 通过某个对象或方法可以获取到连接对象
        {get {   //只读属性return new SqlConnection(connstring);}}}

2.实体类 根据数据库中的表来做

比如Nation表 就建一个Nation类

表名=类名;封装的字段=表里面的属性

例:

    public class Nation{private string code;public string Code{get { return code; }set { code = value; }}private string name;public string Name{get { return name; }set { name = value; }}}

3.数据访问类 实现对表的各种操作 增删改查

需要引用命名空间: using System.Data.SqlClient;

查询所有数据返回的是一个集合,利用List<写存放数据的类型> 泛型集合(广泛利用于集合里面存对象)

例:

    //主要实现对Nation表的各种操作(增删改查)public class NationDA{private SqlConnection _conn; //连接对象private SqlCommand _cmd; //命令对象private SqlDataReader _dr; //读取器对象//构造方法来初始化连接对象 命令对象public NationDA(){_conn = DBConnect.Conn; //对连接对象进行初始化_cmd = _conn.CreateCommand(); //对命令对象进行初始化
        }//添加数据的方法public bool Add(string code,string name){_cmd.CommandText = "insert into Nation values(@code,@name)";_cmd.Parameters.AddWithValue("@code",code);_cmd.Parameters.AddWithValue("@name",name);_conn.Open();int n = _cmd.ExecuteNonQuery();_conn.Close();if (n > 0){return true;}else{return false;}}//查询所有数据的方法public List<Nation> Select(){_cmd.CommandText = "select * from Nation";_conn.Open();_dr = _cmd.ExecuteReader();//定义一个空的集合List<Nation> list = new List<Nation>();if (_dr.HasRows){while (_dr.Read()){//造一个Nation对象Nation data = new Nation();data.Code = _dr[0].ToString();data.Name = _dr[1].ToString();//扔到集合里面
                    list.Add(data);}}_conn.Close();return list;}//根据条件查询的方法public List<Nation> Select(string code){_cmd.CommandText = "select * from Nation where Code=@code";_cmd.Parameters.Clear();_cmd.Parameters.AddWithValue("@code",code);_conn.Open();_dr = _cmd.ExecuteReader();//定义一个空的集合List<Nation> list = new List<Nation>();if (_dr.HasRows){while (_dr.Read()){//造一个Nation对象Nation data = new Nation();data.Code = _dr[0].ToString();data.Name = _dr[1].ToString();//扔到集合里面
                    list.Add(data);}}_conn.Close();return list;}//删除方法public bool Delete(string code){_cmd.CommandText = "delete from Nation where Code=@code";_cmd.Parameters.Clear();_cmd.Parameters.AddWithValue("@code",code);_conn.Open();int n = _cmd.ExecuteNonQuery();_conn.Close();if (n > 0){return true;}else{return false;}}//修改方法public bool Update(string code,string name){_cmd.CommandText = "update Nation set Name=@name where Code=@code";_cmd.Parameters.Clear();_cmd.Parameters.AddWithValue("@code",code);_cmd.Parameters.AddWithValue("@name",name);_conn.Open();int n = _cmd.ExecuteNonQuery();_conn.Close();if (n > 0){return true;}else{return false;}}public string NationName(string code){_cmd.CommandText = "select Name from Nation where Code=@code";_cmd.Parameters.AddWithValue("@code",code);_conn.Open();_dr = _cmd.ExecuteReader();if (_dr.HasRows){_dr.Read();return _dr[0].ToString();}else{return "汉族";}_conn.Close();}}    

查看元素使用foreach遍历集合

※foreach里面不能加减任何一个元素,但可以修改数据

例:

            Console.WriteLine("请输入代号:");string code = Console.ReadLine();List<Nation> list = da.Select(code);foreach (Nation data in list){Console.WriteLine(data.Code + "--" + data.Name);}

转载于:https://www.cnblogs.com/ShenG1/p/5790164.html

ADO.NET 数据库操作类相关推荐

  1. DBHelper、DataHelper、ADO数据库操作类(转)

    DBHelper.DataHelper.ADO数据库操作类 2018年05月29日 18:51:34 千影 阅读数:554 废话不多说,直接上用法: 查询: var dt = db.GetDataTa ...

  2. 一个简单而又灵活的数据库操作类

    一个简单而又灵活的数据库操作类 作者: 紫瑗 ***************************************************************************** ...

  3. mysql的数据库操作类_MYSQL数据库操作类

    class MSSQLDB { //MYSQL数据库操作类 //使用说明: //该类完全按照ADO的习惯书写的,用过ASP的人都觉得ASP连接数据库比PHP好用(这是我的感觉), //但PHP得一个一 ...

  4. C# ADO.NET数据库操作

    C# ADO.NET数据库操作 C# ADO.NET数据库操作及常用类概述 C# Connection:连接数据库 C# Command:操作数据库 C# DataReader:读取查询结果 C# D ...

  5. C#ADO.NET数据库操作

    C#ADO.NET数据库操作 数据库连接 功能描述 Connection类 属性方法 实现流程 代码演示 数据库操作 类介绍 Command类 功能描述 构造方法 属性方法 实现流程 DataRead ...

  6. 小博老师解析Java核心技术 ——JDBC数据库操作类封装

    2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...

  7. php建立数据库操作类,PHP数据库操作类的定义及使用

    PHP数据库操作类的定义及使用 点击数:8894  发布时间2017-08-01 22:33:39 class myconn{ private $host; private $user; privat ...

  8. php封装数据库操作类,php简单数据库操作类的封装

    本文实例为大家分享了php封装一个简单的数据库操作类,供大家参考,具体内容如下 一.代码 class conndb{ private $local; private $username; privat ...

  9. ADO.NET数据库操作------SqlDataReader和SqlDataAdapter 区别

    ADO.NET数据库操作------SqlDataReader和SqlDataAdapter 区别 1.   SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活.     ...

  10. 我积累的数据库操作类(ASP.NET)

    http://guanvee.cnblogs.com/archive/2006/06/16/427510.html http://guanvee.cnblogs.com/archive/2006/06 ...

最新文章

  1. Vue 实现的音乐项目 music app 知识点总结分享
  2. web前端技术框架选型参考
  3. android 条件筛选吸顶,自定义吸顶LayoutManager
  4. golang 释放内存机制的探索
  5. css3加载图片淡入效果
  6. Jenkins系列一Linux环境安装Jenkins
  7. I2C总线简介(很经典)
  8. c 语言自动关机代码,自动关机 C语言源代码
  9. CSS | 使用 PostCSS 插件让 Web 应用支持暗黑模式
  10. 一个小白程序员的目标
  11. c语言里strcpy作用是什么,c语言中的strcpy是什么意思?
  12. 中国千家主要规划设计勘察单位
  13. js 跳转到指定位置 高德地图_第三方高德地图Javascript API
  14. linux meld 中文乱码,linux下paste、diff、meld的使用
  15. 卡马克快速平方根(平方根倒数)算法(转)
  16. python T检验
  17. zip直链生成网站_手把手教你如何用飞桨自动生成二次元人物头像
  18. 免费的mysql空间
  19. windows BitLocker对U盘加密过程
  20. Access端口和Trunk端口

热门文章

  1. python dataframe取行列_pandas DataFrame 行列索引及值的获取的方法
  2. python中__future__包
  3. 五分钟看懂快速幂算法
  4. switchyomega规则列表备份_一键备份微博并导出生成PDF,顺便用Python分析微博账号数据...
  5. c#和python_C#学习笔记(与Java、C、C++和Python对比)
  6. API开创基底细胞癌手术切缘采集,改善过度医疗现状
  7. Android提高显示布局文件的性能,使用include标签重用layouts
  8. 微软专家推荐11个Chrome 插件
  9. 当ligerui的grid出现固定列与非固定列不在同一水平线上时,改怎么处理
  10. 线性支持向量分类机及其实现