1

dotnetnuke 用のモジュールの開発を始めたばかりです (ちょうど 2 週間前)。

XP に DotNetNuke 6.2 を完全にインストールしました。VS2008 と SQL SERVER 2008 Express Edition を使用しています。

フレームワーク DNN のテーブルに使用する「dnn」というデータベースがあります。

しかし今、SQL Server 2008 の同じインスタンス内にある Sales という別のデータベース (たとえば) からデータを取得したいと考えています。カスタム ユーザー コントロール .aspx からこのデータベースに接続する方法がまったくわかりません。データベースに接続するための通常のコードを入れてみました。接続文字列を生成し、接続を生成し、ac# クラスからクエリを実行しましたが、これは機能しません。

昨日、dotnetnuke からデータ アクセス ドキュメントを見つけましたが、カスタム モジュールに新しい接続を実装する方法がわかりません)。私の質問は、どうすればこの Sales データベースに接続できるのでしょうか?

4

2 に答える 2

2

他の返信からのコメントに気づき、ここに少し追加したいと思いました。

別のデータベースに接続すると、標準のDotNetNuke構成プロセスの範囲外になります。カスタムデータプロバイダー/SqlDataProviderセットアップを作成できると思いますが、おそらくそれはそれほど単純ではありません。

DNNの範囲外で作業する場合、私はSqlHelperを使用して直接データアクセスを処理し、CBOを使用してデータのハイドレーションを支援しますが、その外部データベースのDataProviderモデルでは機能しません。

于 2012-07-11T17:36:10.560 に答える
2

モジュールを販売する予定がない場合は、dnn の外側の DB に接続することを計画しているため、可能性は低いと思われます。

私はちょうど.netを使用します

System.Configuration をまだ持っていない場合は、参照に追加します。

それから:

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

Web構成で、新しい接続文字列を接続文字列セクションに追加します

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

覚えておくべきことの 1 つは、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 に答える