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();但所有工作都被注释掉,不确定这是否是故意的。

编辑:

使用 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

于 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 回答