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 ...
随机推荐
- a标签的target的四个值
特殊的目标 有 4 个保留的目标名称用作特殊的文档重定向操作: _blank 浏览器总在一个新打开.未命名的窗口中载入目标文档. _self 这个目标的值对所有没有指定目标的 <a> 标签 ...
- createNewFile()与createTempFile()的不同
1, File 的 createNewFile() 方法: createNewFile():返回值为 boolean: 方法介绍:当且仅当不存在具有此抽象路径名指定名称的文件时, ...
- (译)Windsor入门教程---第四部分 整合
介绍: 目前为止,已经介绍了应用程序的各个部分.首先是添加了Windsor程序集,然后是添加了控制器工厂,还添加了installer类来注册控制器.虽然但是我们还没用在应用程序中调用他们.在这 ...
- (中等) POJ 3660 Cow Contest,Floyd。
Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...
- STL中的所有算法(70个)
STL中的所有算法(70个)----9种类型(略有修改by crazyhacking) 参考自: http://www.cppblog.com/mzty/archive/2007/03/14/1981 ...
- 一种比较简单的在USB U盘中访问nandflash的方法
u8 nandflash_write_buffer[NAND_SERECT_FULL_SIZE]; static int currentBlock = -1; static int currentPa ...
- python遍历字典元素
a={'a':{'b':{'c':{'d':'e'}},'f':'g'},'h':'i'} def show(myMap): for str in myMap.keys(): secondDict=m ...
- Linux ALSA声卡驱动之三:PCM设备的创建
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 1. PCM是什么 模数转换 模拟信号经过pcm(脉冲编码调制)后为pcm数据: PCM是 ...
- android 多线程Thread,Runnable,Handler,AsyncTask
先看两个链接: 1.http://www.2cto.com/kf/201404/290494.html 2. 链接1: android 的多线程实际上就是java的多线程.android的UI线程又称 ...
- iOS 开发 之 测试框架kiwi
1. 在Podfile中加入 target :VVStackTests, :exclusive => true do pod 'Kiwi/XCTest' end 2.下载kiwi模板 XCode ...