点点细雨的原创博文!供各位在编程之路的同学们参考~
本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作!
昨天我们做到了数据库的搭建,数据库搭建完成后就是整个项目的搭建,那么首先就是三层架构。
三层架构,就是数据访问层、业务逻辑层和表示层三部分,整体穿插一个实体类进行数据的传递。
值得一提的是这次数据访问层的搭建方式,跟原来有很大的不同。
/// <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里都添加一个填充实体数据的函数,这样能增加代码的重用性。上面那种注释方式也会在业务逻辑层引用的时候给出文字的提示。