ADO.Net(三)——数据库操作类
2018-06-18 04:28:52来源:未知 阅读 ()
操作数据类
避免代码重用、造对象太多、不能分工开发
利用面向对象的方法,把数据访问的方式优化一下,利用封装类
一般封装成三个类:
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); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- JVM系列之.JVM内存模型如何正确运用操作?本文详解 2020-06-04
- 拼多多三面惨败,问题在于java中间件、数据库与spring框架. 2020-06-04
- 我天!xx.equals(null) 是什么骚操作?? 2020-06-01
- 基于数据库的代码自动生成工具,生成JavaBean、生成数据库文 2020-05-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash