ADO.NET 的使用(一)

1、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的语法掌握要求比较高。程序员

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

DataSet结构图:
sql

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

3、ADO.NET五大对象

一、Connection对象---链接数据库

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

二、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();//返回第一行第一列的值

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

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

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

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

/// <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;
        }
    }

五、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;
         }
    }

4、实际项目中的使用状况

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

5、总结

ADO.NET主要对程序员sql技能稍微高点,也是一种比较底层的框架,所以操做数据库最快。浏览器

相关文章
相关标签/搜索