ADO.NET 数据库操作类
操作数据类
避免代码重用、造对象太多、不能分工开发
利用面向对象的方法,把数据访问的方式优化一下,利用封装类
一般封装成三个类:
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 > )
- {
- 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[].ToString();
- data.Name = _dr[].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[].ToString();
- data.Name = _dr[].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 > )
- {
- 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 > )
- {
- 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[].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);
- }
ADO.NET 数据库操作类的更多相关文章
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
- PHP 数据库操作类:ezSQL
EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...
- 通用数据库操作类,前端easyui-datagrid,form
实现功能: 左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例
<?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
随机推荐
- (中等) POJ 1054 The Troublesome Frog,记忆化搜索。
Description In Korea, the naughtiness of the cheonggaeguri, a small frog, is legendary. This is a we ...
- jquery中,使用append增加元素时,该元素的绑定监听事件失效
举例:如果在一个<div id="resultArea"></div>中,通过append添加一个id="checkOutTip"的文本 ...
- 在阿里云ECS(CentOS6.5)上安装redis
下载所需的redis 命令: wget http://download.redis.io/releases/redis-3.0.7.tar.gz 结果: 解压redis压缩文件: 命令: .tar.g ...
- [转]解决Maven报错"Plugin execution not covered by lifecycle configuration"
[转]解决Maven报错"Plugin execution not covered by lifecycle configuration" 导入Myabtis源码后,POM文件会报 ...
- mongodb 3.x connect with credential
package mongoDb; import java.net.UnknownHostException; import java.util.ArrayList; import java.util. ...
- JNI错误总结(转)
源:JNI错误总结 最近公司里要用JNI技术,用java去调用已经写好的本地DLL库.之前自己也没接触过相关技术,其中花了大部分时间在调试改错上面,网上对于错误的解决方案也不多,现在项目接近完工,自己 ...
- PHP内核变量存储
PHP作为一门弱类型语言,其变量类型可任意改变.而C作为PHP的底层实现,是通过结构及联合来实现PHP变量的弱类型特性的.在PHP源码中,Zend/zend.h文件有关于PHP变量的结构定义. 01 ...
- .net中的4种事务总结
在 一个MIS系统中,没有用事务那就绝对是有问题的,要么就只有一种情况:你的系统实在是太小了,业务业务逻辑有只要一步执行就可以完成了.因此掌握事务处 理的方法是很重要,进我的归类在.net中大致有以下 ...
- iOS 开发 之 测试框架kiwi
1. 在Podfile中加入 target :VVStackTests, :exclusive => true do pod 'Kiwi/XCTest' end 2.下载kiwi模板 XCode ...
- Python3基础 pop() 删除 键为指定值的项
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...