.NET做WEB应用和网站开发的时候,经常都对数据库进行各种操作.
这里和大家分享一下自己封装的简单DataAccess类.
DataAccess进立的是一个数据库工厂,对各种数据库进行了封装,具体说,他是与数据库种类无关的一个工具类.
DataAccess总共只有三个方法:

public static DbCommand CreateCommand()
该方法是一个静态方法,它从WebConfig里面读取数据库连接字符串,然后打开数据库,返回一个DbCommand 参数.

public static bool ExecuteCommand(DbCommand command)
该静态方法接收一个DbCommand 参数,然后执行增、删、改三种操作,返回BOOL类型的值。

public static DataTable ExecuteSelectCommand(DbCommand command)
此方法接收一个DbCommand 参数,执行SELECT任务,以DataTable 返回查询的结果集。

整个过程就是:
CreateCommand()创建一个DbCommand 参数,用户指定DbCommand 的CommandType和内容,然后传给ExecuteCommand或ExecuteSelectCommand执行。
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Common;

/// <summary>
/// DataAccess类
/// </summary>
public class DataAccess
{
    public DataAccess()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    /// <summary>
    /// 查询命令执行
    /// </summary>
    /// <param name="command"></param>
    /// <returns>数据表对象(DataTable)</returns>
    public static DataTable ExecuteSelectCommand(DbCommand command)
    {
     
        //建立一个数据表,用来返回数据
        DataTable table=null ;
        
         
        //执行数据操作
        try
        {
            //打开数据连接
            command.Connection.Open();
            //执行数据命令并保存在数据表中
            DbDataReader reader = command.ExecuteReader();           
            table = new DataTable();
            table.Load(reader);
            reader.Close();
        }
        catch (Exception ex)
        {
            throw new Exception (ex.Message );
        }
        finally
        {
            //关闭数据库连接
            command.Connection.Close();
        }
              
      
        return table;
            }
    public static bool ExecuteCommand(DbCommand command)
    {
        //保存判断变量
        bool flag = false;
        //受影响的行数
        int executeNum = -1;
        //执行数据库
        try
        {
            //打开数据库连接
            command.Connection.Open();
            executeNum = command.ExecuteNonQuery();
            if (executeNum > -1)
                flag = true;
        }
        catch (Exception ex)
        {
            throw new Exception (ex.Message  );
        }
        finally
        {
            //关闭数据库连接
            command.Connection.Close();
        }
        return flag;
    }

    /// <summary>
    /// 建立数据操作命令
    /// </summary>
    /// <returns>comm</returns>
    public static DbCommand CreateCommand()
    {
        //提取数据库服务商提供名称
        string dataProviderName = WarehouseConfiguration.DbProviderName;
        //提取数据库连接字符串
        string connectionString = WarehouseConfiguration.DbConnectionString;
        //建立一个新的通用数据库工厂
        DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName);
        //建立数据库连接字符串
        DbConnection conn = factory.CreateConnection();
        //设计连接字符串
        conn.ConnectionString = connectionString;
        //建立数据操作命令
        DbCommand comm = conn.CreateCommand();
        //设置command的type属性
        comm.CommandType = CommandType.Text;
        return comm;
    }
}

相关文章: