+ -
当前位置:首页 → 问答吧 → 在两个帐套进行切换,如何来适应多用户

在两个帐套进行切换,如何来适应多用户

时间:2011-12-19

来源:互联网

我在一个页面的代码如下:
 protected void HNKD_Click(object sender, EventArgs e)
  {
  Maticsoft.DBUtility.DbHelperSQL.factorychoice("KD");
  Session["factory"] = "康达电子";
  Response.Redirect("Main.aspx");
  }
  protected void HNBD_Click(object sender, EventArgs e)
  {
  Maticsoft.DBUtility.DbHelperSQL.factorychoice("BD");
  Session["factory"] = "博禄德电子";
  Response.Redirect("Main.aspx");
  }
用来切换连接字符串,,其中 Maticsoft.DBUtility.DbHelperSQL 的代码如下
public abstract class DbHelperSQL
  {
  //数据库连接字符串(web.config来配置),多数据库可使用DbHelperSQLP来实现.
  public static string connectionString = PubConstant.ConnectionString;
  public DbHelperSQL()
  {  
   
  }

  /// <summary>
  /// 进行工厂别的切换
  /// </summary>
  public static void factorychoice(string factory)
  {
  switch (factory)
  {
  case "KD":
  connectionString = PubConstant.ConnectionString;
  break;
  case "BD":
  connectionString = PubConstant.ConnectionString2; ;
  break;
  }
  }

我感觉我这样子用static,只适合一个用户,如果是多用户, 肯定不行,
那代码如何改成适应多用户的,切换帐套呢

作者: zhengyingcan   发布时间: 2011-12-19

尽量不要再web中用static

作者: zhudao92   发布时间: 2011-12-19

不是 static的问题
Session["factory"] 只能存储一个值

作者: hewansongjuan   发布时间: 2011-12-19

存储一个值倒没有什么,只是担心 甲用户先static = "A数据库" 乙用户 登入的时候改成 static = "B数据库" ,
因为static是全局变量, 甲在不知情的情况下, 用了B数据库, 把资料全部存入B数据库.

作者: zhengyingcan   发布时间: 2011-12-19

我的一个网站,供两个工厂使用,希望用户选择工厂别,两个工厂数据库分开,但数据的设计是一样的

作者: zhengyingcan   发布时间: 2011-12-19

就是静态连接字符串的问题,静态变量每个类只有一个,不管该类有多少个实例对象。假如 A 进入系统,选择使用账套一,此时连接字符串为一,接着 B 进入系统,选择使用账套二,连接字符串改为二,这时对于 A,也变成账套二了,这肯定乱套了。

作者: orain   发布时间: 2011-12-19

引用 5 楼 orain 的回复:

就是静态连接字符串的问题,静态变量每个类只有一个,不管该类有多少个实例对象。假如 A 进入系统,选择使用账套一,此时连接字符串为一,接着 B 进入系统,选择使用账套二,连接字符串改为二,这时对于 A,也变成账套二了,这肯定乱套了。

是的呀, 我是用 动软的 简单的 三层架构, 问题是动软的三层架构喜欢 用static, 真要命.

作者: zhengyingcan   发布时间: 2011-12-19

其实我的目的就是,三层架构 数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.

作者: zhengyingcan   发布时间: 2011-12-19

谁帮我解决一下子呀

作者: zhengyingcan   发布时间: 2011-12-19

相关阅读 更多