我刚刚开始为dotnetnuke开发模块(仅仅2周前),
我已经在XP上完美地安装了DotNetNuke 6.2,我正在使用VS2008和SQL SERVER 2008快速版。
我有一个名为“dnn”的数据库,我用它来表示框架DNN。
但是现在我想从另一个名为Sales(例如)的数据库中获取数据,该数据库位于SQL Server 2008的同一个实例中。我真的不知道如何从我的自定义用户控件连接这个数据库的.aspx。我试图把正常的代码连接到数据库。我确实生成了连接字符串,我确实生成了连接,并从c#类执行查询,但这不起作用。
昨天我发现了dotnetnuke的数据访问文档 - 但我不明白如何在自定义模块中实现新连接。所以我的问题是,如何连接这个销售数据库?
答案 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模型。