using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

/// <summary>
///DBHelper 的摘要说明
/// </summary>
public static class DBHelper
{
    public static SqlConnection conn;
    /// <summary>
    /// 获取连接对象
    /// </summary>
    public static SqlConnection Conn
    {
        get
        {
            //获取连接字符串
            string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();
            if(conn == null)
            {//连接为空
                conn = new SqlConnection(connectionString);
                conn.Open();
            }else if(conn.State == System.Data.ConnectionState.Closed)
            {//连接状态为空
                conn.Open();
            }else if(conn.State == System.Data.ConnectionState.Broken)
            {//连接断断续续(卡)
                conn.Close();
                conn.Open();
            }
            return conn;
        }
    }
    /// <summary>
    /// 执行,并返回影响的行数
    /// </summary>
    /// <returns></returns>
    public static int ExecuteCommand(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        int result =  cmd.ExecuteNonQuery();
        return result;
    }
    /// <summary>
    /// 返回影响行数
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static int ExectueCommand(string safesql,params SqlParameter[] pala)
{
    SqlCommand cmd = new SqlCommand();
    cmd.Parameters.AddRange(pala);
    int result = cmd.ExecuteNonQuery();
    return result;
}
    /// <summary>
    /// 执行查询返回查询得到的第一行第一列的对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static string ReturnStringScalar(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        try
        {
            string result = cmd.ExecuteScalar().ToString();
            return result;
        }
        catch
        {
            return "0";
        }
        finally
        {
            conn.Close();
        }
    }
    public static int GetScalar(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        try
        {
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }
        catch
        {
            return 0;
        }
        finally
        {
            conn.Close();
        }
    }
    /// <summary>
    /// 执行代码返回查询得到的第一行第一列的对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static int GetScalar(string safesql,params SqlParameter[] pala)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        cmd.Parameters.AddRange(pala);
        int result = Convert.ToInt32(cmd.ExecuteScalar());
        return result;
    }
    /// <summary>
    /// 通过Sql语句返回SqlDataReader对象
    /// </summary>
    /// <returns></returns>
    public static SqlDataReader GetReader(string safesql)
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        return dr;
    }

/// <summary>
    /// 通过Sql语句返回SqlDataReader对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static SqlDataReader GetReader(string safesql,params SqlParameter[] pala)
    {

SqlCommand cmd = new SqlCommand(safesql,conn);
        cmd.Parameters.AddRange(pala);
        SqlDataReader dr = cmd.ExecuteReader();
        return dr;
    }
    /// <summary>
    /// 通过Sql返回Table
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static DataTable GetDataSet(string safesql)
    {
        DataSet ds = new DataSet();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
        return ds.Tables[0];
    }
    /// <summary>
    /// 通过Sql返回Table
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static DataTable GetDataSet(string safesql,params SqlParameter[] pala)
    {
        DataSet ds = new DataSet();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        cmd.Parameters.AddRange(pala);
        da.Fill(ds);
        return ds.Tables[0];
    }

/// <summary>
    /// GetDataSet(方法)和该方法都一样,为了不浪费资源,建议使用该方法
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static DataTable GetDataTable(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql, conn);
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        DataTable dt = new DataTable();
        dt.Load(dr);
        dr.Close();
        return dt;
    }

}

转载于:https://www.cnblogs.com/scsuns520/archive/2009/12/26/1632999.html

DAL(数据库访问层)相关推荐

  1. 1.1 DAL数据访问层

    分布式(Distributed)数据访问层(Data Access Layer),简称DAL,是利用MySQL Proxy.Memcached.集群等技术优点而构建的一个架构系统.主要目的是解决高并发 ...

  2. 数据库访问层中间件Zebra

    数据库访问层中间件Zebra zebra是一个基于JDBC API协议上开发出的高可用.高性能的数据库访问层解决方案.类似阿里的tddl,zebra是一个smart客户端,提供了诸如动态配置.监控.读 ...

  3. mysql 数据库访问层_MYSQL数据库访问层

    /** * 数据访问层,仅处理MYSQL * 包括 * by:李勇 * at:2009-01-19 */final classDalSplite{ public function__construct ...

  4. 第三课 泛型+反射封装数据库访问层 2019-04-02

    转载于:https://www.cnblogs.com/t-mac-1/p/10645849.html

  5. 分布式数据访问层(DAL)

    概述 分布式(Distributed)数据访问层(Data Access Layer),简称DAL,是利用MySQL Proxy.Memcached.集群等技术优点而构建的一个架构系统.主要目的是为了 ...

  6. AliasDB:简单统一灵活的数据库访问库(支持MSSQL/MySQL/SQLite/Oracle/ODBC/OleDb)适用于中小型系统...

    数据库访问各种规模的应用程序不可避免的操作,.NET对提供了简单方便统一的数据库访问类,并且通过Enterprise Lib提供了更为顶层的数据库访问库.在我的人个工作中,现在用得最多的就是通过&qu ...

  7. java三层架构(表示层,业务逻辑层,数据访问层,与两层的区别,三层架构的优缺点)

    目录 1 什么是三层 2 为什么使用三层 3 与两层的区别 1 什么是三层 UI(表现层): 主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用户需要的数据. BLL:(业务逻辑层): U ...

  8. 数据访问层(连接数据库)

    数据访问层:又称为DAL层,有时候也称为是 持久层,其功能主要是负责数据库的访问.简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操 ...

  9. 【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类

    怎么说呢,作为程序员,我们明天都应该学习新的知识. 以前我在对数据库进行操作的时候都是在同一页面对数据库进行操作.这样的话,就是操作繁琐,而且需要重复的书写对数据库操作的代码,这样不仅浪费了很多的时间 ...

最新文章

  1. 包装类数据类型,以及数据类型之间的转换
  2. 我写了一个面向源码阅读者的 UI 框架(基于 Vue)
  3. time since epoch
  4. AndroidStudio gradle配置
  5. Spring事务回滚和异常类
  6. 滑动验证前端代码实现
  7. 基于pnpm + lerna + typescript的最佳项目实践 - 理论篇
  8. JS,JQuery杂谈
  9. python面试技巧和注意事项_Python 程序员面试须知须会的5个问题
  10. 如何调用gitee仓库真实图片链接
  11. High Availability手册(3): 配置
  12. SecureCRT中文乱码解决方法
  13. C#莱姆达表达式的使用
  14. raspberry pi_如何使用Raspberry Pi和RetroPie构建自己的NES或SNES Classic
  15. Zynq7跑peta linux,ZYNQ跑系统 系列(二) petalinux方式移植linux petalinux-config遇到问题...
  16. 泰勒公式和麦克劳林公式
  17. 赵小楼《天道》《遥远的救世主》深度解析(125)做你该做的,受你该受的
  18. VSCode_快捷键
  19. 向量场的散度和旋度_矢量场,标量场,散度,梯度,旋度的理解
  20. 添加solidworks许可证服务器,SolidWorks许可服务器问题排查

热门文章

  1. 二进制搜索算法_使用安全摄像机镜头解释二进制搜索算法
  2. react 统一字段验证_如何使用React的受控输入进行即时表单字段验证
  3. c++语言文件流,C++ IO类、文件输入输出、string流详细讲解
  4. linux用户在哪个文件夹,LINUX中用命令成功建立一个用户后信息会记录在哪个文件中...
  5. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门
  6. hung-yi lee_p10_分类/概率生成模型
  7. 连接服务器_命令行连接FTP服务器
  8. JavaScript 复习之数据类型
  9. IOS分享扩展使用JS脚本
  10. javascript基础语法——表达式