调用可移植数据访问层的数据接口代码如下:
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; } } }