星空网 > 软件开发 > ASP.net

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<写存放数据的类型> 泛型集合(广泛利用于集合里面存对象)

例:

 

ADO.Net(三)——数据库操作类ADO.Net(三)——数据库操作类
//主要实现对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();    }  }

View Code

 

查看元素使用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(三)——数据库操作类

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

旺季警惕!货代称出口货物或将一律停装,亚马逊卖家销售新爆点出现:https://www.ikjzd.com/articles/136540
亚马逊明年计划建立新配送中心创造500多新职位:https://www.ikjzd.com/articles/136541
跨境物流:https://www.ikjzd.com/articles/136542
YinoLink易诺:拉新策略要基于独立站生命周期谋划:https://www.ikjzd.com/articles/136543
香港公司怎么注销?需要什么条件?:https://www.ikjzd.com/articles/136544
钛动分享|电商客户如何提升Facebook主页评分:https://www.ikjzd.com/articles/136545
在古巴做游轮 古巴旅游项目:https://www.vstour.cn/a/363194.html
西藏旅游攻略自驾游需要多少天 去西藏旅游自驾游要多久时间:https://www.vstour.cn/a/363195.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流