假设我有一个包含 5 个文本框的表单,我需要从数据库中提取一些数据,然后使用该数据设置这 5 个文本框。
所以假设我有 3 个基本层:
default.aspx 页面背后的代码
联系 DAL 的 BLL 类
和数据访问层 (DAL)
但是我听说过 default.aspx 页面不应该知道 sqldatareader,实际上您可能不想将 sqlclient 命名空间添加到 default.aspx 代码隐藏页面。
所以我曾经做过这样的事情:
protected sub DisplayCustomerData()
Dim s as SqlDataReader
Dim b as BLL
b=new BLL();
s = b.GetCustomerData();
//then take s and simply set each text field
if s.read()
TextBox1.Value = s("MyField1")
end if
end sub
然后 BLL 将简单地调用 DAL 以调用 SQL Server 中的存储过程并执行 CommandObject.ExecuteReader,将结果传递回 BLL,然后 BLL 将其发送到 default.aspx 的代码隐藏页面。
如果这没有意义,我可以提供完整的源代码。我的问题是,如果 default.aspx 实际上声明并知道 SQL 数据读取器是不好的,那么更好的方法是什么?我应该使用什么数据类型来避免在我的接口代码中使用 sqldatareader?