动态连接字符串的问题

从不签到 2010-06-02 10:29:22
三层构架

连接字符串是在web.config中定义
<add name="ConnectionString" connectionString="Data Source={0};Persist Security Info=True;User ID=abc;Password=abc;Unicode=True" providerName="System.Data.OracleClient"/>
现在
datasource 是不确定的,是index画面输入的,userid ,pwd 是保存在web.config中

可以把datasource 保存在session中,层层传递到数据处理层,可是这样做比较费劲
有没有比较简单的方法,比如
在数据处理层读取session/cookie,然后替换

或者有什么更好的方法?

谢谢
...全文
103 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
从不签到 2010-06-02
  • 打赏
  • 举报
回复
上面的不行,多用户不好使
从不签到 2010-06-02
  • 打赏
  • 举报
回复

public class PubConstant
{

public static string DATASOURCE = string.Empty;

public static string ConnectionString
{
get
{
string _connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

_connectionString = string.Format(_connectionString, SID);

return _connectionString;
}
}


然后index里面直接给这个datasource赋值就可以了
liufuchun0206 2010-06-02
  • 打赏
  • 举报
回复
既然是三层架构在显示层输入的数据当然一定要传到数据访问层了,要不然怎么查询数据啊?不过你说放到session中也可以,就是有点麻烦是真的,不过估计没什么好的办法,要么把datasource传到数据层,要么先在index层把ConnectionString拼接好再传回数据层(建议不要这样,不安全)。如果你的应用程序都是要在index输入datasource的话,干脆你把datasource做成参数,虽然要改的方法较多但是层次分明条例依旧清晰,如果改成session/cookie的话会破坏三层架构,但是实现起来虽有些麻烦但是却较直接,楼主根据自己的需求选择把。
lcomplete 2010-06-02
  • 打赏
  • 举报
回复
多些几个 static
petshop里头不就这样的。。
GPRS_DTU 2010-06-02
  • 打赏
  • 举报
回复
赞成楼上
wzg0319 2010-06-02
  • 打赏
  • 举报
回复
也可以这样。
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。详细的你可以参考设计模式里所说的Facade模式。。
GT7466 2010-06-02
  • 打赏
  • 举报
回复
datasource 是不确定的 ? 也太强大了吧!

大不了把可能的datasource都枚举出来,我就不信你的datasource 真能多到无法确定
wzg0319 2010-06-02
  • 打赏
  • 举报
回复
你把数据库连接抽像出来一个类。也就是设计模式里所说的代理模式。。
从不签到 2010-06-02
  • 打赏
  • 举报
回复
web是多用户的啊
第一个用户 datasource 是 AA
如果用static 那么
第二个用户登陆后,datasrouce 变为 BB

第一个用户的也不就被改变了么?

忘了一点,
connection不是一直打开的,与数据库相连的时候才打开,然后关闭
yasire 2010-06-02
  • 打赏
  • 举报
回复
<add name="ConnectionString" connectionString="Data Source={0};Persist Security Info=True;User ID=abc;Password=abc;Unicode=True" providerName="System.Data.OracleClient"/>
多写几个串啊!~
lcomplete 2010-06-02
  • 打赏
  • 举报
回复
dbhelper 里链接字符串写成 静态的呀 datasource 不确定 就多些几个static

为什么要保存到session ?

新群 DotNet Programmer 群号 112850311
本群新开,欢迎dotnet程序员加入,我们致力于营造一个好的学习交流氛围,不管你是高手还是菜鸟,只要你虚心好学,我们都诚挚的欢迎您。
wzg0319 2010-06-02
  • 打赏
  • 举报
回复
如果你一定要用static。。那就用享元模式。详情请见:
http://www.cnblogs.com/lovecherry/archive/2007/10/09/918431.html

62,074

社区成员

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

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

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

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