`

利用配置文件实现SQL-Server与Oralce数据库访问类的转换

 
阅读更多

在企业级应用时,可能会用到两种或两种以上数据库,这就需要在编码时做两种数据库的转换,现在提供一种方法,也是微软示例PetShop提供的解决方式;即使用Assembly反射加载访问数据库的类

首先,创建一个空白解决方案,名字为:TestChangeDataBase,然后添加一个C#类库工程,名字叫DBHelper,然后在类库工程里创建一个接口IDAL,具体代码如下:
namespace DBHelper
{
public interface IDAL
{
DataSet GetDataSet(string query);
}
}

保存后,关闭这个接口文件;再创建一个类文件OracleHelper.CS,用以访问Oracle数据库:此类要实现IDAL接口
示例代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;


using System.Data.OracleClient;

/// <summary>
/// 访问Oracle数据库
/// </summary>
///
namespace DBHelper
{
public class OracleHelper : IDAL
{
public OracleHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

#region IDAL 成员

public DataSet GetDataSet(string query)
{
OracleConnection con = new OracleConnection(ConfigurationSettings.AppSettings["oracle"]);
OracleDataAdapter da = new OracleDataAdapter(query, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

#endregion
}
}

保存,关闭此此文件,再创建一个类文件SQLHelper.CS,用以访问SQL-Server数据库,此类也要实现IDAL接口,示例代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;

using System.Data.SqlClient;
/// <summary>
/// SQLHelper 的摘要说明
/// </summary>
///
namespace DBHelper
{
public class SQLHelper : IDAL
{
public SQLHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

#region IDAL 成员

public DataSet GetDataSet(string query)
{
SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["sqlserver"]);
SqlDataAdapter da = new SqlDataAdapter(query, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

#endregion
}
}
保存,关闭此文件.在解决方案视图,右击DBHelper,选择生成,生成工程.

向解决方案中添加一个Web工程,名字叫TestWebSite,

给此Web工程添加引用--项目--选择DBHelper工程.

并给此Web工程添加Web.Config配置文件,并添加如下节点:

<connectionStrings>
<add name="oracle" connectionString="server=student;user id=scott;password=tiger"/>
<add name="sqlserver" connectionString="server=thinkpad/sqlexpress;uid=sa;pwd=yang;database=pubs;"/>
</connectionStrings>
注:这是用VS2005开发要配置此节,如用VS2003,则配置如下:

<appSettings>
<add key="oracle" value="server=student;user id=scott;password=tiger"/>
<add key="sqlserver" value="server=thinkpad/sqlexpress;uid=sa;pwd=yang;database=pubs;"/>
</appSettings>

本文是以VS2005为基础开发的

配置完毕后,保存,关闭文件,打开默认的页Default.aspx,要设计视图,向此页添加一个GridView控件,再打开代码隐藏文件:Default.aspx.cs,编辑代码

完整代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Reflection;
using DBHelper;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//在此处可以采用读取配置文件的方式,则可以实现动态加载,这里仅做个示例

/** IDAL dbHelper = (IDAL)Assembly.Load("DBHelper").CreateInstance(ConfigurationSettings.AppSettings["sqlHelper"]);

*/
IDAL dbHelper = (IDAL)Assembly.Load("DBHelper").CreateInstance("DBHelper.OracleHelper");

//SQL 语句也可以在配置文件中配置
DataSet ds = dbHelper.GetDataSet("select * from emp");
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
}

全部完成后,选择Web工程为启动项目,启动测试,OK!

这个仅是个示例工程,可以做的再好一点,加大配置文件的作用,以适应真正开发的需要

分享到:
评论

相关推荐

    从SqlServer导数据到Oracle数据库的winform程序(定时器).zip

    在本项目中,开发者创建了一个基于Winform的C#应用程序,该程序实现了从SQL Server数据库向Oracle数据库的数据迁移功能,并且这个迁移过程是通过一个定时器来触发的,确保了数据的实时同步。以下是关于这个项目的...

    通过Oracle的透明网关和dblink直接取sqlserver表中的数据

    许多企业需要从SQL Server数据库中提取数据以供Oracle数据库使用,而Oracle的透明网关和DBLink是实现这一需求的关键技术。本文将深入探讨如何通过Oracle的透明网关和DBLink技术,直接从SQL Server数据库中提取数据,...

    C#的sql server+Oracle导出程序

    3. **SQL Server和Oracle数据库连接**:使用ConnectionString配置信息建立与数据库的连接,使用SqlCommand执行SQL语句。 4. **数据查询**:编写SQL SELECT语句,可能包括JOIN、WHERE子句等,以获取所需数据。 5. **...

    C#语言SQL+Access+Oracle通用版数据库操作类源码

    在这个场景中,我们关注的是使用C#语言实现对SQL Server、Access和Oracle这三种不同数据库系统的通用操作类源码。这个资源集合可以帮助开发者更方便地进行数据库操作,避免因数据库类型的不同而频繁修改代码。 首先...

    数据库访问类,支持sql和oracle,并同时支持log4net日志记录功能~

    数据库访问类是软件开发中一个重要的组成部分,它主要用于与数据库进行交互,执行SQL查询、存储过程等操作。在这个项目中,我们看到一个数据库访问类,它不仅支持SQL Server和Oracle这两种广泛使用的数据库系统,还...

    c#通用数据库访问类

    "c#通用数据库访问类"是一个旨在简化数据库操作的类库,它支持多种数据库系统,如Sql Server 2000和Access,并且具有可扩展性,可以进一步支持Oracle和其他数据库。 首先,让我们深入理解这个类库的核心概念——...

    ORACLE数据库学习总结

    以上内容覆盖了Oracle数据库的基础知识、SQL语言操作、内置函数、PL/SQL编程、游标、视图、存储过程、触发器、事务与锁、备份与恢复等多个方面的知识点,旨在帮助读者全面理解和掌握Oracle数据库的关键技术。

    Asp.net数据库封装访问类

    例如,可以通过配置文件更改数据库供应商,从SQL Server切换到Oracle或MySql,而无需修改业务逻辑层的代码。 8. **缓存支持**:为了提升性能,可能会集成ASP.NET的缓存机制,对于频繁访问但不常改变的数据,可以...

    实体类生成工具(源码) 基于SqlServer Oracle

    这个工具特别针对SqlServer和Oracle数据库,这意味着它可以处理这两种数据库的数据模型,并将其转换为编程语言中的类结构。 在数据库驱动的应用程序开发中,实体类扮演着核心角色。它们是业务逻辑和数据存储之间的...

    用JSP_Servlet和JavaBeans技术实现SQL Server表与DBF文件的相互转换.pdf

    本部分内容将详细解释这些技术,以及如何使用它们来实现SQL Server数据库表和DBF文件之间的相互转换。 JSP(Java Server Pages)是一种基于Java技术的Web开发技术,它允许开发者将Java代码嵌入到HTML页面中。JSP...

    beetlsql-2.8.26-all.zip

    总的来说,BeetlSQL是一个高效、易用的数据库访问库,适用于快速开发和维护Java项目的数据库操作部分。通过下载并研究"beetlsql-2.8.26-all.zip"压缩包,开发者可以全面了解和掌握BeetlSQL的使用,提升开发效率。

    很好用的数据库访问封装类

    这个"很好用的数据库访问封装类"是为C#编程语言设计的,旨在提供一个通用的解决方案,支持Access、SQL Server和Oracle等多种数据库系统。这种封装允许开发者通过统一的接口来处理不同类型的数据库,降低了代码的复杂...

    AS400与windows数据库数据相互倒入

    本主题主要探讨如何实现在AS400(IBM iSeries)系统与Windows操作系统上的SQL Server或Oracle数据库间进行数据导入导出。 首先,AS400是一款由IBM推出的强大服务器平台,它拥有内置的DB2数据库系统,广泛用于企业...

    sqljdbc jdbc

    总的来说,SQL JDBC驱动和Oracle JDBC驱动是Java开发者在进行数据库操作时必不可少的工具,它们提供了高效、可靠的数据库连接能力,确保了Java应用能够顺利地与SQL Server和Oracle数据库进行通信。

    ojdbc14+sqljdbc4-2.0+mysql-connector-java-5.1.41

    这个版本支持Oracle 10g数据库,提供了高性能和低级别的数据库访问。然而,随着Oracle数据库版本的更新,ojdbc14已经较老,现在推荐使用更高级别的驱动,如ojdbc8,以获得更好的兼容性和性能。 2. **SQL Server ...

    ASP.NET通用数据库访问组件

    ASP.NET通用数据库访问组件是一种软件开发工具,它提供了一种标准化的方法来访问各种类型的数据库,如MSSQL(Microsoft SQL Server)、MYSQL(MySQL Server)、ORACLE(Oracle Database)和ACCESS(Microsoft Access...

    jsp连接sqlserver2000数据库驱动包

    在Java中,JDBC(Java Database Connectivity)是Oracle公司提供的一个标准API,它允许Java程序通过Java语言来访问各种类型的数据库。对于SQL Server 2000,我们需要找到与之兼容的JDBC驱动,将其添加到项目的类路径...

    Pentaho_bi_server配置手册

    - **配置文件**:接下来需要修改两个关键的配置文件来启用 MySQL 支持。 - `applicationContext-spring-security-jdbc.xml`:配置安全性和权限管理。 - `applicationContext-spring-security-hib`:此文件可能需要...

    Microsoft.SQL Server 2008 Integration Services

    在企业级数据库管理中,SSIS扮演着至关重要的角色,帮助用户从不同来源抽取数据、清洗和转换数据,并将其加载到目标数据库,如SQL Server。 **1. SSIS架构** SSIS的核心组件包括控制流和数据流。控制流主要负责...

    RestServer直接发布数据库为json格式提供方法

    - **数据转换**:RestServer能够将关系型数据库(如MySQL、SQL Server、Oracle)中的数据转换为JSON格式,这使得非结构化的数据访问变得简单。 - **REST服务发布**:通过RESTful接口,RestServer能够将数据库的...

Global site tag (gtag.js) - Google Analytics