利用配置文件实现SQL Server与Oralce访问类的转换
创始人
2024-03-23 07:30:25
0

现在微软提供了一种方法,也是微软示例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;

///


/// 访问Oracle数据库
///

///
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;
///


/// SQLHelper 的摘要说明
///

///
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配置文件,并添加如下节点:

 
user id=scott;password=tiger" />
uid=sa;pwd=yang;database=pubs;" /> 

注:这是用VS2005开发要配置此节,如用VS2003,则配置如下:

本文是以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!

【编辑推荐】

  1. 使用Oracle数据库实现Python数据持久
  2. PHP将数据从Oracle向Mysql数据迁移实例
  3. Oracle与SQL Server选型时需考虑的差异

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...