您现在的位置是:首页 >

API是应用程序和谁的接口 接口在ADO.NET中的应用

火烧 2021-10-26 09:42:56 1025
接口在ADO.NET中的应用   当我们在连接MSSQLSEVER的时候 一般都是 SqlCo ectio co = ew SqlCo ectio Co Str 这样的格式格式来创建连接字符串的 这是

接口在ADO.NET中的应用  

  当我们在连接MSSQLSEVER的时候 一般都是  SqlConnection con = new SqlConnection(ConStr);这样的格式格式来创建连接字符串的 这是时候我们我们似乎感觉他很方便 但是突然那一天你的老板给你给一个Oracle的备份数据库 你是不是还要 OracleConnection con= new OracleConnection(conStr);又突然老板突发奇想 觉得数据量也不大 而且ACCESS 还蛮潮流的 你给我换成ACCESS要我哪里都可以直接打开 你是否又要OleDbConnection conn = new OleDbConnection(conStr);刚做好了突然老板说客户需要DB 了 这孩子终于按耐不住了 这不是折腾人么#·¥%&¥……

  于是乎 他就想了想 NET的思想就是提供统一的规范化来管理一切对象 那么我们就来追踪一下本源 从源头上来解决问题

API是应用程序和谁的接口 接口在ADO.NET中的应用

  他就开始这样查看

  

  他发现IDbConnection接口已经提供了我们通常所需要的基本的方法         看到这里他想到了利用类型转化(将一个接口变量指向实现接口的类的一个实例 当然这个也可以书面的第一位隐式转化的部分内容)

        那么我还需要这样         OleDbConnection Code        // Assumes connectionString is a valid connection string         using (OleDbConnection connection =           new OleDbConnection(connectionString))        {             connection Open()              // Do work here         }        或者         OdbcConnection Code        // Assumes connectionString is a valid connection string         using (OdbcConnection connection =           new OdbcConnection(connectionString))        {             connection Open()              // Do work here         }        或者         OracleConnection Code        // Assumes connectionString is a valid connection string                 using (OracleConnection connection =                   new OracleConnection(connectionString))                {                     connection Open()                      // Do work here                 }                OracleConnection nwindConn = new OracleConnection( Data Source=MyOracleServer;Integrated Security=yes; )                 nwindConn Open()         事实证明完全可以省略这些繁琐的步骤         我们现在只需要这样         IDbConnection conn= new OracleConnection(conStr)         IDbConnection conn= new new OleDbConnection(conStr)         IDbConnection conn= new SqlConnection(ConStr)         是不是感觉依旧繁琐呢 因为先还没有直观的展示给大家 现在我们就上代码 来展示下他的优点         using System;        using System Configuration;        using System Data OleDb;        using System Data;        using System Data SqlClient;        using System Data OracleClient;                namespace IFADO                {             class Program             {                 static void Main(string[] args)                 {                     string conStr = ConfigurationManager ConnectionStrings[ conStr ] ConnectionString;                     string privider = ConfigurationManager ConnectionStrings[ conStr ] ProviderName;                     IDbConnection conn;                     switch (privider)                     {                         case Access : conn = new OleDbConnection(conStr) break;                                 case SQLSever : conn = new SqlConnection(conStr) break;                                 case Oracle : conn = new OracleConnection(conStr) break;                                 default: throw new Exception( 未找到合适的数据库 请扩展!)                      }                   using(conn)                           {                         conn Open()                          using (IDbCommand cmd = conn CreateCommand())                         {                             cmd CommandText = SELECT * FROM Test_TableORDER BY Test_Table ID DESC ;                                     cmd ExecuteNonQuery()                          }                         Console WriteLine( 完成查询! )                                  Console ReadKey()                      }                 }             }        }        此时我们操心的只有配置文件中的ProviderName节点的值了 但是我们可以放心的扩展数据库 而不用担心他是否会正常执行 lishixinzhi/Article/program/net/201311/13630  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码