当前位置:编程学习 > C#/ASP.NET >>

两个数据库的连接和操作

我在Web.config 中配置了两个数据库的连接 
在DAL层写了个SqlHelper.cs  
想问下大家SqlHelper中能不能根据用户页面的操作来判断读取不同的数据库?如果能要怎么做?感谢大家 --------------------编程问答-------------------- 发两贴?
继续沙发 --------------------编程问答-------------------- 首先,可以给LZ提供一个思路,微软的PetShop4.0也是这么做的:
首先将用户选择数据库的类型写在一个XML文件中。然后在程序代码中就读这个XML文件,如果是SQL那么就用反射来动态的创建这个SQLDAL,其他的也一样:如AccessDAL
那么所有的数据库访问层都必须继承一个接口IDAL,并实现这个接口中的方法,这点很重要;


public IDAL CreateDAL(string DALName)
{
  string DALName=GetDalName();//读取XML中用户配置的数据库访问层类名.  
  //这个DALName是名称空间.类名称,其中的类名称就是如SQLDAL,AcessDAL等不同数据库访问层类的名称。
  IDAL MyDAL=(IDAL)Assembly.Load("程序集名称").CreateInstance(DALName);
  return MyDAL;
}

那么接下来你用上面返回的那个IDAL接口对象,其实就是用用户动态配置的那个访问层对象。 --------------------编程问答-------------------- LZ可以先看看微软的那个PetShop4.0支持不同数据库的机制,大体和上面差不多。希望对LZ有帮助 --------------------编程问答-------------------- 用web.config实现
--------------------编程问答-------------------- 可以实现,但是,你要进行一部分代码的重写 --------------------编程问答-------------------- 能否说说具体点的!谢谢大家啊...这个东西头疼的很... --------------------编程问答-------------------- 可以实现。根据需求连接相应的数据库. --------------------编程问答-------------------- private static string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
private static string connStr_text = System.Configuration.ConfigurationManager.ConnectionStrings["connStr_text"].ConnectionString;
在你的dhbelp里面这样写 两个连接字 各边各的 增删改的方法各写两个就行了 因为SqlConnection(不同的)就OK了 你调用的时候根据需求调不同的库 --------------------编程问答-------------------- 这个用链接服务器的方式比较简单


http://www.cnblogs.com/xihongshibeibei/archive/2009/06/05/1496611.html --------------------编程问答-------------------- 其实你可以只在web.config中只写一个数据库连接、然后当用户需要另一个库中的数据是、只需要在sql中 库名..表名、就可以了。 --------------------编程问答--------------------
引用 9 楼 ihandler 的回复:
这个用链接服务器的方式比较简单


http://www.cnblogs.com/xihongshibeibei/archive/2009/06/05/1496611.html


select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)
可行... --------------------编程问答-------------------- --------------------编程问答-------------------- 这个好像是抽象工厂的一个实例应用,不过你的那个数据访问层必须写两个才行
1、定义一个抽象工厂层:IFactory
2、定义一个接口层:IDAL
3、定义两个数据访问层:ACCESSDAL,SQLDAL
4、定义服务层:BLL
这里调用IDAL中的方法
5、页面层:UI
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,