【问题标题】:How can I get data from another database in dotnetnuke?如何从 dotnetnuke 中的另一个数据库获取数据?
【发布时间】:2012-07-10 22:55:39
【问题描述】:

我刚刚开始为 dotnetnuke 开发模块(仅 2 周前),

我已经在 XP 上完美安装了 DotNetNuke 6.2,我正在使用 VS2008 和 SQL SERVER 2008 express edition。

我有一个名为“dnn”的数据库,用于框架 DNN 的表。

但现在我想从另一个名为 Sales 的数据库(例如)获取数据,该数据库位于 SQL Server 2008 的同一实例中。我真的不知道如何从我的自定义用户控件连接到该数据库.aspx。我试图将正常代码用于连接数据库。我确实生成了连接字符串,我确实生成了连接,并从 c# 类进行查询,但这不起作用。

昨天我从 dotnetnuke 找到了一个数据访问文档——但我不明白如何在我的自定义模块中实现新连接)。所以我的问题是,我如何才能连接到这个销售数据库?

【问题讨论】:

    标签: sql-server-2008 visual-studio-2008 dotnetnuke dotnetnuke-module


    【解决方案1】:

    如果您不打算出售您的模块,这似乎不太可能,因为您计划连接到 dnn 之外的数据库。

    我只会使用 .net

    如果您还没有 System.Configuration,请将其添加到您的参考中。

    然后:

    System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionstring"]
    

    在您的网络配置中 将新的连接字符串添加到您的连接字符串部分

      <connectionStrings>
        <add name="MyConnectionstring" connectionString="blah" />
     </connectionStrings>
    

    要记住的一点是,DNN 只是一个围绕 asp.net 的框架,因此您可以使用所有 .net 数据访问工具。

    使用上面的例子,我可以写一些简单的东西:

    string connectionstr = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionstring"]
    
    using (SqlConnection conn = new SqlConnection(connectionstr ))
    {
      // I am using the SqlHelper class here its part of DNN
      sqlstr = "Select * From SomeTable"
      using(SqlReader reader = SqlHelper.ExecuteReader(conn, sqlstr))
      {
        while(reader.read())
        {
         /// read into object or what ever
        }
       }
    }
    

    【讨论】:

    • 感谢 Anthony 的回答!但现在我得到了另一个提示!我不是使用 dnn 类在销售数据库中进行连接吗?(如 DataProvider、SqlDataProvider),我可以定义我自己的吗? SqlDataProvider 类来实现这个连接。这就是我想要做的。我一直在阅读数据访问手册,其中首先我需要配置 web.config 文件添加一个新的连接字符串,然后我必须指定将使用这个其他连接字符串的提供程序。现在我必须为此连接实现一个新的 SqlDataProvider 类。我能做到吗?如何?原谅我的无知。
    • 我更新了我的答案以包含@Mitchel 所说的一些内容,但我没有时间深入研究课堂补水的内容。
    • 好的 Anthony,我会听取你的建议,我会以这种方式联系!谢谢。我将学习更多关于 DNN 的知识。我自己只有 2 周的时间作为 dnn 的模块开发人员,再次感谢您的回答,如果有更多将受到欢迎。
    • @AlejandroGarcia 如果您喜欢我的回答,能否将其标记为正确,谢谢!
    • 哇,我已经可以连接到我的数据库了! andd Works Jaja 再次感谢您!
    【解决方案2】:

    我注意到其他回复中的 cmets 并想我会在这里添加一些。

    一旦您要连接到另一个数据库,您就超出了标准 DotNetNuke 配置过程的范围。我认为您可以创建自定义数据提供程序/SqlDataProvider 设置,但很可能不是那么简单。

    当在 DNN 范围之外工作时,我自己直接使用 SqlHelper 处理数据访问,并使用 CBO 来帮助数据水合,但不使用该外部数据库的 DataProvider 模型。

    【讨论】:

    • 谢谢 Mitchel Sellers,我已经注意到了! Woow Mitchel Sellers 写信给我的问题!!!!我开始研究你的书《Professional DotNetNuke Module Programming (Wrox Programmer to Programmer)》,可爱!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2016-05-13
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多