代码之家  ›  专栏  ›  技术社区  ›  Alastair Pitts

正在连接到ASP.NET服务器控件中的数据库

  •  1
  • Alastair Pitts  · 技术社区  · 16 年前

    作为后续工作 this question 我正在构建一个自定义服务器控件,以放置在SharePoint2010母版页上。

    其背后的想法是,它将显示一个从数据库动态填充的菜单。

    因为这是一个服务器控件,所以我在一个dll中构建它,但我遇到了一个小问题。因为它必须连接到数据库,所以我需要将连接字符串存储在某个地方(并使它能够基于目标配置(dev/test/prod)进行配置)。

    我本来打算把实体框架作为ORM使用,但我对连接字符串存储在哪里感到困惑。在普通的ASP.NET Web应用程序中,它进入web.config,但这是外部dll中的服务器控件。

    在何处存储连接字符串,以便只构建和部署包含服务器控件的程序集。

    编辑:
    在我发布赏金之前,我尝试使用嵌入的资源XML文件来保存连接字符串,虽然这样做有效,但我很好奇这是否是最佳实践/更好的方法?

    2 回复  |  直到 16 年前
        1
  •  2
  •   John Saunders    16 年前

    我建议不要让控件连接到数据库。相反,控件的用户应该连接到数据库,然后将数据绑定到控件。

        2
  •  0
  •   George Stocker NotMe    16 年前

    连接字符串应放在.dll用于其配置文件的任何应用程序中。因为这是ASP.NET,所以 web.config 这个文件做得很好。从dll调用任何方法时,应将连接字符串作为对象传递给它:

    MyConnectionString
    {
        get
        {
            return ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
        }
    }
    

    使用 :

    using(SqlConnection conn = new SqlConnection(MyConnectionString))
    {
        //other stuff here. Like making your command object, or passing it.. etc.)
    }