1

我刚刚开始为dotnetnuke开发模块(仅在2周前),如何从dotnetnuke中的其他数据库获取数据?

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

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

但现在我想从另一个数据库名为销售数据(例如),它是SQL Server 2008中的同一个实例我真的没有任何想法如何使用这个数据库从我的自定义用户连接内控制.aspx。我试图把正常的代码连接到数据库。我确实生成了连接字符串,我确实生成了连接,并从c#类中执行查询,但这不起作用。

昨天,我发现从DotNetNuke的数据访问文件 - 但我不知道如何实现我的自定义模块,一个新的连接)。所以我的问题是,我如何连接这个销售数据库?

回答

2

如果你不卖你的模块,这似乎不太可能,因为你打算连接到DNN的DB出方的计划。

我只想用.NET

添加System.Configuration给您参考,如果你没有它了。

则:

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

在你的web配置 新的连接字符串添加到您的连接字符串部分

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

有一点要记住的是,DNN只是一个框架变通ASP。因此您可以使用所有.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 
    } 
    } 
} 
+0

感谢安东尼为您的答案,但现在我得到另一个提示!,我不使用dnn类在销售数据库连接吗?(如DataProvider,SqlDataProvider),我可以定义我自己的SqlDataProvider类来实现此连接。 这就是我想要做的。 我一直在阅读数据访问手册,其中,首先我需要配置web.config文件添加一个新的连接字符串,接下来我必须指定将使用此其他连接字符串的提供程序。现在我必须为这个连接实现一个新的SqlDataProvider类。 我能做到吗?怎么样?请原谅我的无知。 – 2012-07-11 15:49:50

+0

我更新了我的答案,以包含@Mitchel所说的一些内容,但我没有时间回到课堂上的水合物中。 – Anthony 2012-07-11 22:32:40

+0

好的安东尼,我要接受你的建议,我会用这种方式联系!谢谢。我将会更多地研究DNN。作为dnn的模块开发人员,我只有2周的时间,感谢您的回答,如果还有更多,我会欢迎。 – 2012-07-11 22:49:49

2

我从其他的答复注意到的意见,我想我会在这里加一点。

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

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

+0

谢谢米切尔卖家,我已经注意到了! Woow Mitchel Sellers写信给我的问题!我开始研究你的书“专业DotNetNuke模块编程(Wrox程序员编程)”,可爱! – 2012-07-11 22:57:28

相关问题