如何从dotnetnuke的另一个数据库中获取数据?

时间:2012-07-10 22:55:40

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

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

我已经在XP上完美地安装了DotNetNuke 6.2,我正在使用VS2008和SQL SERVER 2008快速版。

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

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

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

2 个答案:

答案 0 :(得分: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
    }
   }
}

答案 1 :(得分:2)

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

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

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