调用可移植数据访问层的数据接口代码如下:
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;    
namespace DAL
{
   public class CustomersData
   {
      public DataTable GetCustomers()
      {
         string ConnectionString = 
            ConfigurationSettings.AppSettings
            ["ConnectionString"];
         DatabaseType dbtype = 
            (DatabaseType)Enum.Parse
            (typeof(DatabaseType),
            ConfigurationSettings.AppSettings
            ["DatabaseType"]);
         IDbConnection cnn = 
            DataFactory.CreateConnection
            (ConnectionString,dbtype);
         string cmdString = "SELECT CustomerID" +
            ",CompanyName,ContactName FROM Customers";
         IDbCommand cmd = 
            DataFactory.CreateCommand(
            cmdString, dbtype,cnn);
            DbDataAdapter da = 
               DataFactory.CreateAdapter(cmd,dbtype); 
         DataTable dt = new DataTable("Customers");
         da.Fill(dt);
         return dt;
      }
        
      public CustomersDS GetCustomerOrders(string CustomerID)
      {
         // 待定
         return null;
      }
      public CustomersList GetCustomersByCountry
         (string CountryCode)
      {
         // 待定
         return null;
      }
      public bool InsertCustomer()
      {
         // 待定
         return false;
      }
   }
}
在 CustomerData 类的 GetCustomers() 方法中,我们可以看到通过读取配置文件中的信息。可以使用 DataFactory 类通过特定连接字符串创建 XxxConnection 实例,并编写与基本数据源没有特定依赖性的其余代码部分。
与数据层交互的一个业务层类示例看起来可能类似下面这样:
using System;
using System.Data; 
using DAL;
namespace BLL
{
    public class Customers
    {
        public DataTable GetAllCustomers()
        {
            CustomersData cd = new CustomersData();  
            DataTable dt = cd.GetCustomers();
            return dt;
        }
        public DataSet GetCustomerOrders()
        {
            // 待定
            return null;
        }
    }
}
 
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号