1

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

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

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

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

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

4

2 回答 2

2

如果您不打算出售您的模块,这似乎不太可能,因为您计划连接到 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
    }
   }
}
于 2012-07-10T23:16:39.783 回答
2

我注意到其他回复的评论,并认为我会在这里添加一些。

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

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

于 2012-07-11T17:36:10.560 回答