2

dll ファイルで作成したオブジェクトを Web アプリケーションのコード ビハインド ファイルに渡す方法を見つけようとしています。

これが私が作ったクラスです:

public class BugReports
{
    public object userRoleDropDown()
    {
        SqlConnection conn;
        SqlCommand userRoleComm;
        SqlDataReader reader;
        string connectionSrting = ConfigurationManager.ConnectionStrings["BugReports"].ConnectionString;
        conn = new SqlConnection(connectionSrting);
        userRoleComm = new SqlCommand(
            "SELECT UserRoleID, UserRoleName FROM userRoles", conn);

        try
        {
            conn.Open();
            reader = userRoleComm.ExecuteReader();
            /*
            addUserRollDropDownList.DataSource = reader;
            addUserRollDropDownList.DataValueField = "UserRoleID";
            addUserRollDropDownList.DataTextField = "UserRoleName";
            addUserRollDropDownList.DataBind();*/

            reader.Close();
        }
        finally
        {
            conn.Close();
        }

        return reader;
    }
}

次に、cs ファイルでリーダーを使用したいのですが、どこから始めればよいでしょうか? 簡単だと思いました。

BugReports reader = new BugReports();

動作しますが、何も起こりません。

4

2 に答える 2

2

dll へのプロジェクト参照とコード ファイル内の using ステートメントを使用して、すべてが正しく接続されていると仮定します。

BugReports reader = new BugReports();

BugReportsその行は、メソッドを呼び出す必要があるいくつかの作業を実行させるために、クラスのインスタンスのみを取得します。

reader.userRoleDropDown();

SqlDataReader readerすでに閉じた を返す理由がわかりません。もう役に立ちません。また、呼び出してデータを選択していますがreader = userRoleComm.ExecuteReader();、すべての作業がコメントアウトされていますが、それが意図的かどうかはわかりません。

編集:

UI コントロールはクラスに表示されず、閉じた後は SQLDataReader 内のデータにアクセスできないため、SQLDataAdapter を使用する方がよい場合があります。

public DataSet userRoleDropDown()
{
    string connectionSrting = ConfigurationManager.ConnectionStrings["BugReports"].ConnectionString;        
    string queryString = "SELECT UserRoleID, UserRoleName FROM userRoles";

   using (SqlConnection connection = new SqlConnection(connectionSrting))
   {
      SqlDataAdapter adapter = new SqlDataAdapter();
      adapter.SelectCommand = new SqlCommand( queryString, connection);
      adapter.Fill(dataset);
      return dataset;
   }
} 

次に、アプリケーションから選択したデータを使用して、好きなことを行うことができます。

ここで使用される重要なクラスの詳細: SqlDataAdapter DataSet

于 2013-06-14T16:22:09.663 に答える
0

アセンブリをビルドした場合は、ASP.Net アプリケーションに移動し、アセンブリ [dll ファイル] への参照を追加してから、以下のような using ステートメントを追加する必要があります。

namespace CustomLibrary;
{
    public class BugReports
    {
    }    
}

asp.net aspx.cs ファイルで、

using CustomLibrary;

BugReports reader = new BugReports();

実装に関する理解やその他の更新をここに投稿してください。

于 2013-06-14T16:08:13.653 に答える