我是N层应用程序的新手,我试图通过创建自己的应用程序来了解N层应用程序的工作方式。
我阅读了几篇关于它的文章,但没有什么比文字墙更重要了(我可能找不到合适的地方)。
虽然我有一个工具可以帮助生成DAL,BLL类,但它就像一个'大纲'。我没有与DAL,BLL合作的经验......所以我做不了多少。
以下是由生成工具制作的代码(如我所说),并由我自己稍作修改。
DAL
Namespace FIRSTAPP.DAL
{
class Teacher
{
clsOLEDB db = new clsOLEDB();
public OleDbDataReader SelectAll()
{
try
{
db.OpenConnection();
return db.Excute("SELECT * FROM TEACHER");
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public OleDbDataReader SelectRow()
{}
}
}
BLL
namespace FIRSTAPP.BLL
{
class Teacher
{
public string Id { get; set; }
public string FullName { get; set; }
public DateTime DateOfBirth { get; set; }
public List< Teacher > SelectAll()
{
DAL.Teacher dalTeacher = new DAL.Teacher();
IDataReader dr = dalTeacher.SelectAll();
List<Teacher> TeacherList = new List<Teacher>();
while (dr.Read())
{
Teacher myTeacher = new Teacher
{
Id = (string)dr["Id"],
FullName = (string)dr["FullName"],
DateOfBirth = (DateTime)dr["DateOfBirth "],
};
TeacherList.Add(myTeacher);
}
dr.Close();
return TeacherList;
}
Public Teacher SelectRow(string TeacherId)
{}
}
}
DBConnector
namespace FIRSTAPP.DB
{
public class clsOLEDB
{
string mConnectionString = @"Provider = Microsoft.JET.OLEDB.4.0; Data Source = .\FirstAppDB.mdb";
OleDbConnection mConnection;
OleDbDataReader dataReader;
OleDbCommand cmdCommand;
public void OpenConnection()
{
mConnection = new OleDbConnection(mConnectionString);
try
{
mConnection.Open();
}
catch
{
throw new Exception("Could not connect to DB");
}
finally
{
if ( mConnection != null )
mConnection.Close();
}
}
public OleDbDataReader Excute(string SQLText)
{
cmdCommand = mConnection.CreateCommand();
cmdCommand.CommandText = SQLText;
try
{
return cmdCommand.ExecuteReader();
}
catch
{
throw new Exception("Has an error when executing");
}
}
public void CloseConnection()
{
mConnection.Close();
}
}
}
我的问题是:
如果我们需要从数据源获取数据,我们必须执行以下步骤:打开连接 - &gt;阅读数据 - &gt;关闭读者 - &gt;关闭连接。 我的问题是我不知道在BLL或DAL中我应该把Close连接语句放在哪里?怎么做?细节越多越好。
您可以花1分钟时间查看我的代码吗?它足够干净吗?或者它有任何其他问题吗?
很抱歉,如果我的英语有任何错误。非常感谢你。