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(三)——数据库操作类的更多相关文章
- PHP 数据库操作类:ezSQL
EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...
- C# Oracle数据库操作类实例详解
本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...
- 数据库操作类《SqlHelper》
一.背景 在看了一本书叫<Visual Studio 2010(C#)Windows数据库项目开发>后,觉得很多编程技术需要积累,因为一个简单的项目里包含的技术太多了,容易忘记.每次需要用 ...
- Oracle数据库操作类及连接方法
创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...
- 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~
最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...
- Android打造属于自己的数据库操作类。
1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...
- 通用数据库操作类,前端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 * 常用数据库操作,如:增删改查,获取单条记录 ...
随机推荐
- 介绍开源的.net通信框架NetworkComms框架 源码分析(二)ConnectionInfo
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 炉石传说 C# 设计文档(序)
经过3个月的开发,有很多感触. 以前一直以为技术是开发成败的第一因素,现在发现,等到你代码写的时间够长,经验够丰富,什么功能都能随手完成,对于业务的分析能力变成了第一位. 炉石山寨版的BS版本用到的H ...
- 更改(修改)mysql自动增序列改变从1000开始
更改(修改)mysql自动增序列改变从1000开始 ************************************************************************** ...
- ubuntu 下安装memcache 以及php扩展
1,下载软件 下载 memcached http://memcached.org/downloads 下载libevent http://libevent.org/ 2,安装 ...
- CentOS 6.5/6.6 安装(install)mysql 5.7 最完整版教程
Step1: 检测系统是否自带安装mysql # yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖命令: # yum -y remove ...
- SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败解决方案
SQL SERVER 2008 R2 SP1更新时,遇上共享功能更新失败的问题,可作如下尝试: 更新失败后,在windows的[事件查看器→应用程序]中找到来源为MsiInstaller,事件ID为1 ...
- Spring4学习笔记2-配置Bean
1.配置bean 配置形式:Xml和注解方式 Bean的配置方式:通过全类名(反射).工厂.FactoryBean 1.1 id必须唯一 2 Spring提供两种类型的IOC容器的实现 BeanFac ...
- 【javascript激增的思考03】MVVM与Knockout
前言 今天搞的有点快,因为上午简单研究了下MVC,发现MVC不太适合前端开发,然后之前看几位前端前辈都推荐前端使用MVVM,但是我对其还不甚了解,所以我觉得下午还是应该先看看他是神马先,后面再决定要不 ...
- go语言 类型:数组切片
初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针.数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数组的指针: 2.数组切片中的元素个数: 3.数组切 ...
- 前端安全之XSS攻击
XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”.有人将XSS攻击分为三种,分别是: 1. Reflected XSS(基于反射 ...