asp.net 共用数据库连接的方法

yxxue 2008-08-03 04:15:37
我本来想在web.config中配置连接字符串,然后在程序中打开,
但是发现一个问题,如果数据库本来是ACCESS的话,要换成SQL库,就要把所有的程序连接方法修改一遍,
请问这种问题大家是怎么解决的?最好详细一点,因为我是新手,说的太专业了,我根本看不懂,呵呵~

以前在ASP时代很方便啊,写一个conn.asp文件,
然后任何文件都可以<!--#include file="conn.asp"-->
数据库有变动,只要修改这一个文件即可
...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxxue 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bwangel 的回复:]
如果项目已经搞了一大半,再谈架构已经迟了,用全部替换功能吧。比如将所有的OleDBConnection换成SqlConnection
[/Quote]

没什么项目,我还在学习阶段呢,因为有这种顾虑,所以才发问的,
我想知道,各位在处理这种问题时是怎么做的~
yxxue 2008-08-06
  • 打赏
  • 举报
回复
最后顶一次,希望能有答案
离子漂浮物 2008-08-03
  • 打赏
  • 举报
回复
抽象类,把你要作的数据库操作都作成抽象方法,然后作两个实体类一个access一个mssql,用哪个数据库就引用哪个类的即可...
如:


public abstract class dataProvider
{
public enum DatabaseType{ mssql,access,none}
private static dataProvider _nowDataProvider = null;
private static DatabaseType _nowDataType = DatabaseType.none;
public static dataProvider Exec(DatabaseType dbType)
{
//引用方法
if (dbType != _nowDataType && _nowDataProvider == null)
{
_nowDataProvider = (dbType == DatabaseType.access) ? new Access() : new Mssql();
}
return _nowDataProvider;
}

public abstract void Value_Insert(string value);
}
public class Access : dataProvider
{
public override void Value_Insert(string value)
{
//Access Insert
}
}
public class Mssql : dataProvider
{
public override void Value_Insert(string value)
{
//MSSQL Insert
}
}

以上例子中的dbType可以变成web.config里的一个配置,用什么数据库直接改这个配置就可以完成数据库的转换了...
当然也可以将Access和Mssql两个类分别作成两个DLL,利用反射和web.config配置来决定用哪个DLL那就更完美了。
yxxue 2008-08-03
  • 打赏
  • 举报
回复
唉~~~
bwangel 2008-08-03
  • 打赏
  • 举报
回复
如果项目已经搞了一大半,再谈架构已经迟了,用全部替换功能吧。比如将所有的OleDBConnection换成SqlConnection
YiCaoYiMu08 2008-08-03
  • 打赏
  • 举报
回复
使用七层架构
建立接口
HBJMSHOP 2008-08-03
  • 打赏
  • 举报
回复
写个公共调用的类,把增加\删除\保存\查询的方法都放在里面,当然包括连接的方法,可以放在一个名字空间里,这样其它页面文件调用起来,就方便多了
shadowjl 2008-08-03
  • 打赏
  • 举报
回复
可以写一个帮助类,以数据库的类型为参数,实现 不同的连接方法

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧