使用单独的线程创建数据库连接

时间:2015-04-09 07:25:39

标签: c# asp.net multithreading

您好我有一个静态类,其中包含来自数据库的数据的静态变量。我希望这些变量每5秒更新一次,所以我在同一个类中创建了一个线程,它将执行一个从数据库中获取数据并更新变量的函数。但我得到一个nullReferenceException指向我声明初始化我的连接的行。 这是我的代码:

public static void Initialize()
    {
        if (!isInitialized)
        {
            isInitialized = true;
            Thread t = new Thread( new ThreadStart(SetProperties));
            t.Start();
        }
    }

    public static void SetProperties()
    {
        //The next line is where the NullReferenceException is pointing to
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + System.Web.HttpContext.Current.Server.MapPath("cms.accdb") + "';");

        using (conn)
        { ....

请帮忙吗?感谢

1 个答案:

答案 0 :(得分:1)

在新主题中,您无权访问System.Web.HttpContext.Current个对象。 你可以替换

System.Web.HttpContext.Current.Server.MapPath("cms.accdb") 

HostingEnvironment.MapPath("cms.accdb") 

有关它的更多信息: HostingEnvironment.MapPath