点点细雨的原创博文!供各位在编程之路的同学们参考~
本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作!
昨天我们做到了数据库的搭建,数据库搭建完成后就是整个项目的搭建,那么首先就是三层架构。
三层架构,就是数据访问层、业务逻辑层和表示层三部分,整体穿插一个实体类进行数据的传递。
值得一提的是这次数据访问层的搭建方式,跟原来有很大的不同。
///
<summary>
///
根据用户名,密码得到单个管理员
///
</summary>
/// <param
name="userName">用户名称</param>
/// <param
name="password">用户密码</param>
///
<returns>管理员对象</returns>
public
users GetUsersByNameAndPwd(string username,
string userspassword)
{
users users = new users();
using (SqlConnection connection = new
SqlConnection(connString))
{
SqlCommand
command = new SqlCommand("select * from users where
users_name=@username and users_pwd=@userpassword",
connection);
command.Parameters.Add("@username", SqlDbType.VarChar,
50);
command.Parameters.Add("@userpassword", SqlDbType.VarChar,
256);
command.Parameters[0].Value = username;
command.Parameters[1].Value = userspassword;
connection.Open();
using
(SqlDataReader usersReader =
command.ExecuteReader())
{
if
(usersReader.Read())
{
users =
FillData(usersReader);
return users;
}
else
{
return null;
}
}
}
}
///
<summary>
///
填充数据实体
///
</summary>
/// <param
name="usersReader">数据读取器</param>
///
<returns>填充数据后的数据实体</returns>
private static users
FillData(IDataReader usersReader)
{
users users = new users();
users.Users_id =
usersReader.GetInt32(usersReader.GetOrdinal("Users_id"));
users.Users_name =
usersReader.GetString(usersReader.GetOrdinal("Users_name"));
users.Users_pwd =
usersReader.GetString(usersReader.GetOrdinal("Users_pwd"));
users.Users_power =
usersReader.GetBoolean(usersReader.GetOrdinal("Users_power"));
return users;
}
这次采用了每个表对应的DAL里都添加一个填充实体数据的函数,这样能增加代码的重用性。上面那种注释方式也会在业务逻辑层引用的时候给出文字的提示。