• ADO.NET 的使用(一)


    一、ADO.NET概要

    ADO.NET 是一组向 .NET Framework 程序员公开数据访问服务的类。 ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。 它提供了对关系数据、XML 和应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。 ADO.NET 支持多种开发需求,包括创建由应用程序、工具、语言或 Internet 浏览器使用的前端数据库客户端和中间层业务对象。

    上面罗里吧嗦地说了这么多,其实呢,就一句话:ADO.NET就是为我们操作数据库提供了很多类的一种框架。相比ORM框架,ADO.NET的性能是最快的,毕竟ORM是在ADO.NET的基础上再次进行了封装。ORM框架一般用于小项目,当数据量达到3W左右,性能大大降低,这时便成为了恶梦。但是呢,ADO.NET需要自己纯粹地手写sql语句,对sql的语法掌握要求比较高。

    二、ADO.NET中的核心DataSet与执行流程

    DataSet结构图:

    使用ADO.NET获取数据流程图:

    三、ADO.NET五大对象

    1、Connection对象---连接数据库

        //代码示例
        SqlConnection connection = new SqlConnection("sql连接数据库字符串");//SqlConnection只针对sql server数据库
        connection.Open();//打开连接
        connection.Close();//关闭连接
    

    2、Command对象---执行sql语句、事务、存储过程

        //代码示例
        string sqlString="select * from Member";//sql语句
        SqlCommand command= new SqlCommand (sqlString,connection);//connection指的是Connection对象
        int rows = command.ExecuteNonQuery();//返回执行sql语句所影响的数据的行数
        object obj = command.ExecuteScalar();//返回第一行第一列的值
    

    3、DataAdapter对象---数据适配器,填充数据到DataSet

        //代码示例
        DataSet ds=new DataSet();
        SqlDataAdapter sqlDataAdapter=new SqlDataAdapter(command);
        sqlDataAdapter.Fill(ds);//将数据填充到DataSet
    

    4、DataSet对象---ADO.NET的核心

    将得到的数据复制一份保存到内存中,极大地减少了数据库服务器的压力。

        /// <summary>
        /// 执行查询语句,返回DataSet
        /// </summary>
        /// <param name="SQLString">查询语句</param>
        /// <returns>DataSet</returns>
        public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds);
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }
    

    5、DataReader---数据读取器,只读模式,用的比较少

        /// <summary>
        /// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
        /// </summary>
        /// <param name="strSQL">查询语句</param>
        /// <returns>SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string strSQL)
        {
            SqlConnection connection = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand(strSQL, connection);
            try
            {
                connection.Open();
                SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return myReader;
             }
             catch (System.Data.SqlClient.SqlException e)
             {
                throw e;
             }
        }
    

    四、实际项目中的使用情况

    后端程序员编写sql语句,执行后得到DataSet,从DataSet中得到DataTable,复杂的情况下,再对DataTable使用Select()方法进行再次查询,最后将得到的数据json序列化返回。
    我们在项目中,应该会看到DbHelperSQL这个类,这个类便是将ADO.NET的五大对象进行了封装,让我们只需编写sql语句就可以了,不用关心数据库的连接跟sql的执行。

    五、总结

    ADO.NET主要对程序员sql技能稍微高点,也是一种比较底层的框架,因此操作数据库最快。

  • 相关阅读:
    Asp.net core中间件实现原理及用法解说
    C#中,async关键字到底起什么作用?
    C# 中的Async 和 Await 的用法详解
    .NET委托,事件和Lambda表达式
    docker push到私有仓库 docker push 镜像到harbor
    shell tput的用法
    Shell中获取脚本的绝对路径$( cd "$( dirname "$0" )" && pwd)
    shell脚本中 "set -e" 的作用
    从旧goadddy账号转移域名到新的goaddy账号中
    git制作patch的步骤
  • 原文地址:https://www.cnblogs.com/ywjbokeyuan/p/12465390.html
Copyright © 2020-2023  润新知