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 > 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 [email protected]";
            _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 [email protected]";
            _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 [email protected] where [email protected]";
            _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 [email protected]";
            _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);
            }
时间: 2024-08-06 12:02:13

ADO.Net(三)——数据库操作类的相关文章

PHP 数据库操作类:ezSQL

EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.html ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.oracle8/9 .interbase.FireBird.PostgreSQL.MS-SQL.sqlite.sqlite C++). 在你的脚本开头是要包含一个一个PHP文件.然后,你就可以使用更小.更容易的一套ezsql函数来代替标准的PHP数据库函数. 它会自动缓存的查询结果,提供了一系列简单

刚整了一个数据库操作类,但是可以用吗?

今天闲来无事,把以前自己搞的一个数据库操作类重新整理了一下,把命名规范了一下,位置和功能重新规划了一下. 源代码下载:http://files.cnblogs.com/xiaoshuai1992/xsFrameWork.SqlServer.zip 请先看图片和介绍 DbOperate文件夹 DbAccess类:核心类,运用Ado.net 对数据库进行操作. DbInParameter :传入DbAccess的参数,如参数,sql语句,sp名称,sp是执行还是返回数据. DbOutParamete

面向对象中数据库操作类

具体实现功能: 1.连接数据库: 2.插入数据: 3.更新数据: 4.删除数据' 5.修改数据: 6.求最大值: 7.求最小值: 8.求平均数: 9.求和: 10.指定查询: 具体代码分为三个部分: 一.config文件:主要用于连接数据库 <?php return array( 'DB_HOST' => '127.0.0.1',   //主机 'DB_USER' => 'root', //用户名 'DB_PWD' => '123456', //密码 'DB_NAME' =>

一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER

最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库.读数据表.执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢. ADOOperate.H [cpp] view plaincopy ////////////////////////////////////////////////////////////////////// // 类功能:用于数据库的操作 主要实现 连接数据库 读数据表 检查数据表 执行SQL语句 //

C# Oracle数据库操作类实例详解

本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 本文

PHP单例模式的数据库操作类

自己练习写的单例模式的数据库操作类 1 <?php 2 //先建立单模:三私(私有变量.私有构造函数.私有的__clone函数)一公(公有方法),再封装连接数据库,以及返回结果 3 class MySQLDB{ 4 //定义连接数据库需要用到的私有属性 5 private $host; //主机id 6 private $port; //端口号 7 private $user; //用户 8 private $psw; //密码 9 private $dbname; //数据库名称 10 pri

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

php中mysql数据库操作类

talk less and show code: <?php/** *以下代码用于数据库操作类的封装* * @author rex<[email protected]> * @version 1.0* @since 2015*/ class Mysql{ //数据库连接返回值 private $conn; /*** [构造函数,返回值给$conn]* @param [string] $hostname [主机名]* @param [string] $username[用户名]* @par

PHP类初识,通用数据库操作类,前端easyui-datagrid,form

实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[新增]按钮,[修改],[删除]按钮禁用,[保存]按钮启用 (3)点击[修改]按钮,[新增],[删除]按钮禁用 难点:通用数据库操作类中insert方法跟update方法 最终效果图: 前端功能不是很完善,按钮之间逻辑还是有点问题,最后补充前端代码 其中Formain.php对前端传值判断,并调用ac

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f