zoukankan      html  css  js  c++  java
  • 调用可移植数据访问层(一)

    此类型的接口可以类似于如下所示:

    using System;
    using System.Data; 
    
    namespace Common
    {
        public interface IDbCustomers
        {
            DataTable GetCustomers();
            DataTable GetCustomerOrders(string CustomerID);
            DataTable GetCustomersByCountry(string CountryCode);
            bool InsertCustomer();
        }
    }
    

    如果希望将 Microsoft® SQL Server™ 和 Microsoft® Access 作为数据源为其提供支持,则应该在 Microsoft® Visual Studio® .NET 中创建两个不同项目,每个数据源分别创建一个。

    为 SQL Server 创建的项目将类似于如下所示:

    using System;
    using System.Data;
    using System.Data.Common;
    using System.Data.SqlClient;  
    using System.Configuration;    
    using Common;
    
    namespace DAL
    {
       public class CustomersData : IDbCustomers
       {
          public DataTable GetCustomers()
          {
             string ConnectionString = 
                ConfigurationSettings.AppSettings
                ["ConnectionString"];
    
             using (SqlConnection cnn = new SqlConnection
                      (ConnectionString))
             {
                string cmdString = "SELECT CustomerID," +
                   "CompanyName,ContactName " +
                   "FROM Customers";
                SqlCommand cmd = 
                   new SqlCommand (cmdString, cnn);
    
                SqlDataAdapter da = new SqlDataAdapter(cmd); 
    
                DataTable dt = new DataTable("Customers");
    
                da.Fill(dt); 
    
                return dt;
             }
          }
          public DataTable GetCustomerOrders(string CustomerID)
          {
             // 待定
             return null;
          }
          public DataTable GetCustomersByCountry
             (string CountryCode)
          {
             // 待定
             return null;
          }
          public bool InsertCustomer()
          {
             // 待定
             return false;
          }
       }
    }
    

    从 Microsoft® Access 进行数据检索的代码类似于如下所示:

    using System;
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;  
    using System.Configuration;    
    using Common;
    
    namespace DAL
    {
       public class CustomersData : IDbCustomers
       {
          public DataTable GetCustomers()
          {
             string ConnectionString = 
                ConfigurationSettings.AppSettings
                ["ConnectionString"];
    
             using (OleDbConnection cnn = new OleDbConnection
                      (ConnectionString))
             {
                string cmdString = "SELECT CustomerID," +
                   "CompanyName,ContactName " +
                   "FROM Customers";
    
                OleDbCommand cmd = 
                   new OleDbCommand (cmdString, cnn);
    
                OleDbDataAdapter da = new 
                   OleDbDataAdapter(cmd); 
    
                DataTable dt = new DataTable("Customers");
    
                da.Fill(dt); 
    
                return dt;
             }
          }
          public DataTable GetCustomerOrders(string CustomerID)
          {
             // 待定
             return null;
          }
          public DataTable GetCustomersByCountry
             (string CountryCode)
          {
             // 待定
             return null;
          }
          public bool InsertCustomer()
          {
             // 待定
             return false;
          }
       }
    }
    
    CustomersData 类实现 IdbCustomers 接口。需要支持新数据源时,只能创建一个实现该接口的新类。
  • 相关阅读:
    jquery.md5
    LoginPasswordHelp
    RSA(非对称加密算法、公钥加密算法)
    Swiper 3.4.1
    layer web 弹窗
    操作系统
    查看命令帮助
    软件卸载
    重定向命令
    终端命令格式的组成
  • 原文地址:https://www.cnblogs.com/xiarifeixue/p/1651485.html
Copyright © 2011-2022 走看看