Enterprise Library2.0数据访问

本文介绍了如何使用Microsoft Enterprise Library的数据访问应用块来进行数据库的操作。主要包括创建Database对象、提供命令参数及执行命令等步骤,并展示了通过SQL语句和存储过程获取数据的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加相关的命名空间:

using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;

使用Data Access Application Block进行数据的读取和操作,一般分为三步:

1.创建Database对象

2.提供命令参数,如果需要的话

3.执行命令

 

相关代码表示如下:(非常简单,大家可访照)

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common;
using System.Data.SqlClient;
using System.Data.Common;

public partial class testEntLib : System.Web.UI.Page
{
    // 创建Database对象
    Database db = DatabaseFactory.CreateDatabase();
    protected void Page_Load(object sender, EventArgs e)
    {

        // 使用SQL语句创建DbCommand对象
        string sqlCommand = "Select CustomerID, Name, Address, City, Country, PostalCode " +
            "From Customers";
        DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
        //直接获取ds
        //DataSet ds = db.ExecuteDataSet(dbCommand);
        //根据条件执行存储过程返回ds
        DataSet ds = GetProductsInCategory(2);
        this.GridView1.DataSource = ds.Tables[0];
        this.GridView1.DataBind();
    }

    //执行存储过程并传递参数,返回DataSet

   public DataSet GetProductsInCategory(int Category)
   {
        string procCommand = "GetProductsByCategory";
        DbCommand dbCommand = db.GetStoredProcCommand(procCommand);

        // Retrieve products from the specified category.
        db.AddInParameter(dbCommand, "CategoryID", DbType.Int32, Category);

        // DataSet that will hold the returned results       
        DataSet productsDataSet = null;

        productsDataSet = db.ExecuteDataSet(dbCommand);

        // Note: connection was closed by ExecuteDataSet method call

        return productsDataSet;
    }

    /*存储过程进各种参数的处理

    Database类提供了如下的方法,用于参数的处理:

    AddParameter. 传递参数给存储过程
    AddInParameter. 传递输入参数给存储过程
    AddOutParameter. 传递输出参数给存储过程
    GetParameterValue. 得到指定参数的值
    SetParameterValue. 设定参数值

    使用示例如下:


    Database db = DatabaseFactory.CreateDatabase();
    string sqlCommand = "GetProductDetails";
    DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);
    db.AddInParameter(dbCommand, "ProductID", DbType.Int32, 5);
    db.AddOutParameter(dbCommand, "ProductName", DbType.String, 50);
    db.AddOutParameter(dbCommand, "UnitPrice", DbType.Currency, 8);

    Database db = DatabaseFactory.CreateDatabase();
    DbCommand insertCommand = db.GetStoredProcCommand("AddProduct");
    db.AddInParameter(insertCommand, "ProductName", DbType.String, "ProductName", DataRowVersion.Current);
    db.AddInParameter(insertCommand, "CategoryID", DbType.Int32, "CategoryID", DataRowVersion.Current);
    db.AddInParameter(insertCommand, "UnitPrice", DbType.Currency, "UnitPrice", DataRowVersion.Current);*/


}

转载于:https://www.cnblogs.com/mfm11111/archive/2009/02/18/1393423.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值