`

Enterprise Library DataAccess(数据层)笔记(转)

    博客分类:
  • sql
 
阅读更多

1、前行引入命名空间:

using System.Data;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.ServiceLocation;
using System.Data.Common;
using System.Data.SqlClient;

2、创建database实例,这里有两种方式

     第一种:Database db = DatabaseFactory.CreateDatabase("QuickStarts Instance");

     这里的QuickStarts Instance是配置文件中的 connectionStrings  -> add name。配置文件如下:

     <configSections>

           <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null" requirePermission="true" />

      </configSections>

<dataConfiguration defaultDatabase="Connection String" />
  <connectionStrings>
    <add name="QuickStarts Instance" connectionString="Database=EntLibQuickStarts;Server=.;uid=sa;pwd=11"
        providerName="System.Data.SqlClient" />
  </connectionStrings>

      第二种方式: Database DB = EnterpriseLibraryContainer.Current.GetInstance<Database>("QuickStarts Instance");

      但这种方式一定要加一个命名空间的引入:using Microsoft.Practices.ServiceLocation;

3、数据操作之IDataReader

    

     using (IDataReader reader = DB.ExecuteReader(CommandType.Text, "select * from Categories;"))
                {
                    while (reader.Read())
                    {
                        ListItem item = new ListItem();
                        item.Value = reader["CategoryID"].ToString();
                        item.Text = reader["CategoryName"].ToString();
                        DropDownList1.Items.Add(item);
                    }
                }

      以上是SQL语句的形式,如果是存储过程的话,代码如下:

      DbCommand  procedureCmd=DB.GetStoredProcCommand("GetProductsByCategory");
                DB.AddInParameter(procedureCmd,"CategoryID",DbType.Int32,2);
                using (IDataReader readerProcedure = DB.ExecuteReader(procedureCmd))
                {
                    while (readerProcedure.Read())
                    {
                        ListItem item = new ListItem();
                        item.Value = readerProcedure["ProductID"].ToString();
                        item.Text = readerProcedure["ProductName"].ToString();
                        DropDownList2.Items.Add(item);
                    }
                }

4、数据操作之DataSet

    sql语句形式:

     DataSet ds = db.ExecuteDataSet(CommandType.Text,"select * from Customers");

    存储过程形式:

     DbCommand proCmd = DB.GetStoredProcCommand("GetProductsByCategory");
                DB.AddInParameter(proCmd,"CategoryID",DbType.Int32,2);
                DataTable proDs = DB.ExecuteDataSet(proCmd).Tables[0];

     给DataSet中DataTable命名:

     string sqlString = "select * from Products;select * from Categories;";
     DbCommand cmd = DB.GetSqlStringCommand(sqlString);

     DataSet loadDs = new DataSet("ProductsTable");
            DB.LoadDataSet(CommandType.Text,sqlString,loadDs,new string[]{"Products","Categorys"});//this is a very important point
            DataTable dt = loadDs.Tables["Products"];

     修改DataTable中的行:

       1、删除行:dt.Rows[dt.Rows.Count-1].Delete();

       2、添加行:

          object[] rowData = new object[] { 83, "xiaochunProduct", 2, 18.00, "2012/11/26 10:13:40" };
            dt.Rows.Add(rowData);

       3、编辑行:

           object[] rowData2 = dt.Rows[80].ItemArray;
            rowData2[1] = "qqqqq";
            rowData2[4] = System.DateTime.Now.ToShortDateString();
            dt.Rows[80].ItemArray = rowData2;

5、获取返回结果中第一行第一列的值

           int count = (int)db.ExecuteScalar(CommandType.Text,"select count(*) from Customers");

6、执行SQL语句,返回受影响的行数

          int count2 = db.ExecuteNonQuery(CommandType.Text, "insert into ……");

转自:http://www.cnblogs.com/msql/archive/2012/12/05/2803521.html

分享到:
评论

相关推荐

    Enterprise Library --Data Access Application Block入门

    Enterprise Library 是微软 Patterns & Practices 团队开发的一个开源框架,旨在简化企业级应用程序的常见开发任务,其中Data Access Application Block(数据访问应用模块)是它的一部分,主要用于简化数据访问操作...

    Microsoft.Practices.EnterpriseLibrary.Data示例

    1. **Repository模式**:Enterprise Library提倡使用Repository模式来封装数据访问逻辑,使业务逻辑层与数据访问层解耦,增强代码的可测试性和可维护性。 2. **单元测试**:通过使用Database对象,开发者可以轻松地...

    Microsoft.Practices.EnterpriseLibrary.Data

    这个库是微软企业库(Enterprise Library)的一部分,它提供了数据访问的抽象层,帮助开发者无需直接与ADO.NET API交互,即可进行高效、安全的数据库操作。 1. **数据访问抽象**:Enterprise Library Data Block ...

    Microsoft.Practices.EnterpriseLibrary.Data.dll等三个类

    Microsoft.Practices.EnterpriseLibrary.Data.dll Microsoft.Practices.EnterpriseLibrary.Common.dll Microsoft.Practices.ObjectBuilder.dll

    Enterprise Library 企业库数据访问应用程序块实例

    - 本示例中提供的"DataAccess"可能包含了一系列源代码文件,展示了如何使用 Enterprise Library 实现数据访问。可能包括创建 Database 对象,执行 SQL 查询、存储过程,以及如何利用 CommandBuilder 自动化数据操作...

    Microsoft.Practices.EnterpriseLibrary.Data for mysql

    Microsoft Enterprise Library January 2006,支持mysql。 Microsoft.Practices.EnterpriseLibrary.Data.dll。 可用于.net框架2.0。

    Microsoft.Practices.EnterpriseLibrary.Data.dll

    Microsoft.Practices.EnterpriseLibrary.Data.dll

    [微软企业库] Microsoft Enterprise Library 6

    This release includes: Data Access Block, Exception Handling Block, Logging Block, Policy Injection Block, Semantic Logging Block, Transient Fault Handling Block, Validation Block, and Unity;...

    Enterprise Library 企业库 V4.1 中文学习手册

    Enterprise Library – Data Access Application Block 学习手册(最新版) - Part 1 Enterprise Library for .Net Framework 3.5 – EntLib v4.1 是 patterns & practices 小组为.NET Framework 3.5 开发一套企业库...

    使用微软企业类库Microsoft Enterprise Library4.0访问达梦数据库

    首先,要使用Enterprise Library访问达梦数据库,你需要确保已经安装了相应的数据访问应用块(Data Access Application Block, DAAB)。DAAB提供了一种抽象层,可以简化对多种数据库系统的操作,包括SQL Server、...

    EnterpriseLibrary.Data.6 链接MySQL

    vs2017 工程 用EnterpriseLibrary.6链接MySQL数据 MySql.Data.8.0.15 EnterpriseLibrary.Data.6.0.1304.0 EnterpriseLibrary.Common.6.0.1304.0

    微软C#企业库Enterprise Library 6 Docs.chm 文档

    The Data Access Application Block The Exception Handling Application Block The Transient Fault Handling Application Block The Logging Application Block The Semantic Logging Application Block The ...

    Microsoft.Practices.EnterpriseLibrary连接Oracle

    【Microsoft.Practices.EnterpriseLibrary连接Oracle】是微软企业库(Enterprise Library)中的一部分,它提供了一种方便的方式来管理和连接到Oracle数据库。微软企业库是一个开源的软件开发框架,旨在帮助开发者...

    Enterprise Library 源码

    2. **数据库支持**:Enterprise Library 提供了数据访问应用块,它包含了一个数据库连接管理器、数据访问助手类以及数据访问配置工具。这些功能使得与数据库的交互变得更加简单,支持多种数据库系统,如SQL Server、...

    MVC+EnterpriseLibrary5.0

    - 可能还有自定义的数据访问层,使用了Enterprise Library的数据访问应用块 - 日志记录的实现,利用了日志应用块 - 验证逻辑,可能使用了验证应用块 通过这个源码,初学者可以深入理解如何将MVC4.0与Enterprise ...

    Microsoft.Practices.EnterpriseLibrary.data common等程序集5.0版.rar

    Microsoft.Practices.EnterpriseLibrary.Data.dll Microsoft.Practices.EnterpriseLibrary.Data.SqlCe.dll Microsoft.Practices.ServiceLocation.dll Microsoft.Practices.Unity.dll Microsoft.Practices.Unity....

    Microsoft EnterPrise Library 5.0安装包

    在Enterprise Library 5.0中,各种库如`PolicyInjection.dll`, `DataAccess.dll`, `ExceptionHandling.dll`等,都是实现特定功能的核心组件。将这些DLL直接引用到你的项目中,可以轻松利用Enterprise Library提供的...

    Enterprise Library 3.1中文文档

    Enterprise Library 3.1 是 Microsoft patterns & practices Enterprise Library 的一个新的发行。Enterprise Library 是一个应用程序块的集合。这些可重用的软件组件为帮助开发者解决普通企业开发的挑战而设计。这...

Global site tag (gtag.js) - Google Analytics