将对象从dll文件传递到文件后面的代码asp.net c#

时间:2013-06-14 15:59:56

标签: c# asp.net object datareader

我试图弄清楚如何将我在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();

会起作用,但什么都没有出现。

2 个答案:

答案 0 :(得分:2)

假设您已将所有内容与项目引用正确连接到代码文件中的dll和using语句。

BugReports reader = new BugReports();

该行只获取BugReports类的实例,以便让它做一些你需要调用方法的工作。

reader.userRoleDropDown();

我不确定你为什么要退回已经关闭的SqlDataReader reader,它已经不再有用了。您也可以通过调用reader = userRoleComm.ExecuteReader();来选择数据,但所有工作都已注释掉,不确定是否是故意的。

编辑:

您可能最好使用SQLDataAdapter,因为您的UI控件对您的类不可见,并且您在关闭后无法访问SQLDataReader中的数据。

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

答案 1 :(得分:0)

如果您已内置程序集,则应转到ASP.Net应用程序,然后添加对程序集[dll文件]的引用,然后添加如下所示的using语句

namespace CustomLibrary;
{
    public class BugReports
    {
    }    
}

在asp.net aspx.cs文件中,

using CustomLibrary;

BugReports reader = new BugReports();

在此发布您对实施的理解或任何其他更新。