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

Posted

技术标签:

【中文标题】将对象从dll文件传递到文件asp.net c#后面的代码【英文标题】:Passing an object from dll file to code behind file asp.net c# 【发布时间】:2013-06-14 15:59:55 【问题描述】:

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

会起作用,但没有任何反应。

【问题讨论】:

【参考方案1】:

假设您的项目对 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;
   
 

然后,您可以使用从应用程序中选择的数据做任何您喜欢的事情。

有关此处使用的重要类的更多信息:SqlDataAdapterDataSet

【讨论】:

【参考方案2】:

如果你已经内置了一个程序集,你应该去 ASP.Net 应用程序,然后添加对程序集 [dll 文件] 的引用,然后添加一个如下所示的 using 语句

namespace CustomLibrary;

    public class BugReports
    
        

在asp.net aspx.cs文件中,

using CustomLibrary;

BugReports reader = new BugReports();

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

【讨论】:

以上是关于将对象从dll文件传递到文件asp.net c#后面的代码的主要内容,如果未能解决你的问题,请参考以下文章

将 DLL 引用添加到 C# asp.net 项目后如何调用函数

如何将文件和 json 对象从邮递员传递到 asp.net 核心 webapi

新的 dll 文件上传到 bin 文件夹后的 ASP.NET 运行时错误

将对象列表从 c# 传递到糟糕的 c++ win32 本机 dll 的最有效方法是啥?

ASP.NET MVC - 使用 C# 将引用不同程序集的模型从控制器传递到视图

将字节数组从 C# 传递到 C++ DLL 作为 char*