我试图弄清楚如何将我在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();
会起作用,但什么都没有出现。
答案 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();
在此发布您对实施的理解或任何其他更新。