ADO.NET六大对象

在ASP.NET Web开发技术中,对于数据库的访问是通过ADO.NET驱动来完成的。就算是EntityFramework,底层仍然是通过ADO.NET来实现数据库操作的。

ADO.NET有六个核心对象,他们被封装在命名空间

System.Data、System.Data.SqlClient中。使用ADO.NET,必须引用using这两个命名空间。

SqlConnection对象:负责与数据库建立连接,例如通过对象的Open()方法发开数据库连接,Close()方法关闭数据库连接。

SQLCommand对象:负责执行SQL命令及其相关关信息。例如实例的ExecuteReader()方法获得执行命令所得结果的读取器,ExecuteNonQuery()方法负责执行增、删、改的命令,并返回受影响行数。

SqlDataReader对象:负责读取结果集中的数据。例如实例的Read()函数返回布尔值,表示是否还有下一行数据。

     SqlDataAdapter对象:负责与数据库建立桥接、映射。例如实例的Fill()函数负责将执行sql命令返回的结果集填充到指定的容器中。

代码实例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*引入ADO.NET库*/
using System.Data;
using System.Data.SqlClient;

namespace ConnTest.DB
{

    /*一般地,访问数据库的方法都做成公有的*/

    public class SqlHelper
    {
        /*定义连接字符串*/
        /*
         * server表示服务器,赋值为.或localhost都代表本机
         * integrated security赋值而true代表使用windows身份进行登录
         * database赋值为要连接的数据库
         */
        string source = "server=.;integrated security=true;database=MyDB";
        /*初始化连接对象:这里一般不直接建立连接,连接对象耗费巨大资源,坚持"迟用早关"的原则*/
        SqlConnection conn = null;

        /// <summary>
        /// 构造函数实例化连接对象
        /// </summary>
        public SqlHelper()
        {
            /*实例化连接对象,传入连接字符串为其构造*/
            conn = new SqlConnection(source);
        }

        /// <summary>
        /// 返回执行sql查询返回的DataTable对象
        /// </summary>
        /// <param name="sql">SQL命令</param>
        /// <returns>DataTable对象</returns>
        public DataTable Get(string sql)
        {
            /*连接数据库极其重要,必须要进行一定的异常处理*/
            try
            {
                /*打开数据库连接*/
                conn.Open();
                /*创建命令对象,传入sql命令和连接对象进行构造*/
                SqlCommand cmd = new SqlCommand(sql, conn);
                /*创建桥接驱动器对象,传入命令对象进行构造*/
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                /*创建盛放数据的DataTable对象*/
                DataTable dt = new DataTable();
                /*数据填充:将读取到的数据映射到DataTable对象中*/
                adp.Fill(dt);
                return dt;
            }
            catch(Exception e)
            {
                throw new Exception(e.Message.ToString());
            }
            finally
            {
                /*最后必须要关闭连接*/
                conn.Close();
            }
        }

        /// <summary>
        /// 返回执行sql查询的读取器
        /// </summary>
        /// <param name="sql">SQL命令</param>
        /// <returns>读取器</returns>
        public SqlDataReader GetReader(string sql)
        {
            /*连接数据库极其重要,必须要进行一定的异常处理*/
            try
            {
                /*打开数据库连接*/
                conn.Open();
                /*创建命令对象,传入sql命令和连接对象进行构造*/
                SqlCommand cmd = new SqlCommand(sql, conn);
                /*返回读取器,并且读取完成后关闭连接对象*/
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message.ToString());
            }
            
        }

        /// <summary>
        /// 执行增删改查SQL,并返回受影响行数
        /// </summary>
        /// <param name="sql">SQL命令</param>
        /// <returns>受影响行数</returns>
        public int CUD(string sql)
        {
            try
            {
                /*打开数据库连接*/
                conn.Open();
                /*创建命令对象,传入sql命令和连接对象进行构造*/
                SqlCommand cmd = new SqlCommand(sql, conn);
                /*执行命令,返回受影响的行数*/
                return cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message.ToString());
            }
            finally
            {
                /*最后必须要关闭连接*/
                conn.Close();
            }
        }

    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值