Enterprise Library May 2007 Data Access Application Block的使用

用Enterprise Library Configuration进行配置,生成App.config文件内容如下:
<? xml version="1.0" encoding="utf-8" ?>
< configuration >
  
< configSections >
    
< section  name ="dataConfiguration"  type ="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"   />
  
</ configSections >
  
< dataConfiguration  defaultDatabase ="Connection String"   />
  
< connectionStrings >
    
< add  name ="Connection String"  connectionString ="Data Source=(local);Initial Catalog=student;Integrated Security=True"
      providerName
="System.Data.SqlClient"   />
  
</ connectionStrings >
  
< appSettings  />
</ configuration >
1 .增加对 Microsoft.Practices.EnterpriseLibrary.Data.dll Microsoft.Practices.EnterpriseLibrary.Common.dll 的引用,并在代码在添加:
using Microsoft.Practices.EnterpriseLibrary.Data;
 
2 .调用代码示例:
(1) ExecuteDataSet 方法
Database db = DatabaseFactory.CreateDatabase();
DataSet dsCustomers = db.ExecuteDataSet(CommandType.Text, "Select * From Customers" );
customerGrid.DataSource = dsCustomers.Tables[0];
 
(2) ExecuteReader 方法
Database db = DatabaseFactory.CreateDatabase();
 
string sqlCommand = "Select top 5 * From Customers";
DBCommandWrapper dbCommandWrapper = db.GetSqlStringCommandWrapper(sqlCommand);
 
StringBuilder readerData = new StringBuilder();
 
using (IDataReader dataReader = db.ExecuteReader(dbCommandWrapper))
{
while (dataReader.Read())
{
readerData.Append(dataReader["ContactName"]);
readerData.Append(Environment.NewLine);
}
}
 
txtResult.Text = readerData.ToString();
为了执行 SQL 语句,上述代码使用 GetSqlStringCommandWrapper 方法创建合适 command wrapper 对象,然后作为参数传递给 ExecuteReader 方法。
 
(3) ExecuteNonQuery 方法
Database db = DatabaseFactory.CreateDatabase();
 
string sqlCommand = "getProductDetails";
DBCommandWrapper dbCommandWrapper = db.GetStoredProcCommandWrapper(sqlCommand);
 
// Add paramters
int productID=1;
// Input parameters can specify the input value
dbCommandWrapper.AddInParameter("@ProductID", DbType.Int32, productID);
// Output parameters specify the size of the return data
dbCommandWrapper.AddOutParameter("@ProductName", DbType.String, 40);
dbCommandWrapper.AddOutParameter("@UnitPrice", DbType.Currency, 8);
dbCommandWrapper.AddOutParameter("@QtyPerUnit", DbType.String, 20);
 
db.ExecuteNonQuery(dbCommandWrapper);
 
// Row of data is captured via output parameters
string results = string.Format(CultureInfo.CurrentCulture, "{0}, {1}, {2:C}, {3} ",
      dbCommandWrapper.GetParameterValue("@ProductID"),
      dbCommandWrapper.GetParameterValue("@ProductName"),
      dbCommandWrapper.GetParameterValue("@UnitPrice"),
      dbCommandWrapper.GetParameterValue("@QtyPerUnit"));
 
txtResult.Text = results;
为了执行存储过程,上述代码使用 GetStoredProcCommandWrapper 方法创建合适的 command wrapper 对象,然后作为参数传递给 ExecuteNonQuery 方法。
 
(4) ExecuteScalar 方法
Database db = DatabaseFactory.CreateDatabase();
 
string sqlCommand = "GetProductName";
int productID=1;
DBCommandWrapper dbCommandWrapper = db.GetStoredProcCommandWrapper(sqlCommand, productID);
 
// Retrieve ProdcutName. ExecuteScalar returns an object, so
// we cast to the correct type (string).
string productName = (string) db.ExecuteScalar(dbCommandWrapper);
txtResult.Text = productName;

 更改来源于:http://www.cnblogs.com/rickie/archive/2005/02/06/102656.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值