我在一个IIS目录下放了一些.aspx文件,但没有用VS.NET建立应用程序,
现在想把下面的连接对象放到Application_OnStart()中:
    OleDbConnection Cn=new OleDbConnection(DataConnectionString);
    Cn.Open();目的是所有页面就不必再建一次与数据库的连接了。
问题:
但如何让其它的aspx文件中可以直接用这个Cn对象?
直接把GLOBAL.asax拷贝到目录下行吗?

解决方案 »

  1.   

    可以考虑放到Application里面,
      

  2.   

    在Application_BeginRequest中,放HttpContext.Items是可以,这样是在一次请求中共享连接Application_OnStart中放的话就成了全局共享了,多个线程争用这个connection,根本就不可取
      

  3.   

    只要程序中链接字符串中给定的帐号和密码正确,如何搞定三次锁定的问题,是DBA的事情
      

  4.   

    但是我在GLobal中把这个Cn定义为Public public class Global : System.Web.HttpApplication
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.IContainer components = null;
            public static OleDbConnection Cn; public Global()
    {
    InitializeComponent();
    }

    protected void Application_Start(Object sender, EventArgs e)
    {
    Cn=new OleDbConnection("Provider=MSDAORA;Data Source=db;User ID=public1;Password=everyone");
    Cn.Open(); }
    然而在我的ASPX中仍然提示找不到Cn的定义,请高人指点!
     CS0103: 名称“Cn”在类或命名空间“ASP.hm_aspx”中不存在
      

  5.   

    只要程序中链接字符串中给定的帐号和密码正确,如何搞定三次锁定的问题,是DBA的事情
    ----------------------------------------------------------------------------
    DBA是集团公司的,我们是分公司的,要看人家脸色行事。
    请各位讨论我的问题,不要讨论这种方式是否可取。
    我已经讲了,我们是不得已为之。
      

  6.   

    shalen520:
    你可以有你的看法,但是下层人员的能力是有限的,你只能做你能力范围的事。
    象这个问题,我们只能向上反映,同时在上层解决这个问题之前找些权宜之法先维持。
    请兄台不要在这个问题上纠缠了。
      

  7.   

    shalen520:你既也是双星,就帮我想下办法嘛。
      

  8.   

    没试过这样的,有个想法,楼主可以试试,定义一个对象,把conn定义成该对象的静态属性,页面都从该对象取conn。这样会出现什么情况不好说,楼主可以测试一下看看效果。