下面是我在敲三层架构登陆窗体的时候的代码;
一方面本着为人民服务的心做到友好的分享,另一方面点点滴滴的积累自己的代码库资源。
1,UI层的部分代码如下:
这里其实蛮简单的,它的操作最多的还是界面控件以及属性等,UI层也叫界面层;
<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace loginUI
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtUserName.Text.Trim();
string password = txtPassword.Text;
Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();
Login.Model .UserInfo user = mgr.UserLogin(userName, password);
if (user!=null)
{
MessageBox.Show("登陆用户:" + user.UserName);
}
else
{
MessageBox.Show("登陆失败");
}
}
private void txtUserName_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
</span>
2,BLL层的部分代码如下:
这部分是业务逻辑层,中间干活的那个,主要工作是接收-处理-传出数据;
<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace Login.BLL
{
public class LoginManager
{
public Login.Model.UserInfo UserLogin(string userName,string password)
{
Login.DAl.UserDAO uDao = new Login.DAl .UserDAO ();
Login.Model.UserInfo user = uDao.SelectUser(userName,password);
if (user!=null)//login successfully.
{
Login.DAl.ScoreDAO sDao = new Login.DAl.ScoreDAO();
sDao.UpdateSore(userName, 10);
return user;
}
else
{
//throw new Exception("登陆失败。");
return null;
}
}
}
}
</span>
3,DAL层的部分代码如下:
这部分是数据访问层,主要跟数据库打交道,当然个人觉得也是意义最重要的一层。
这是User部分;
<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace Login.DAl
{
public class UserDAO
{
public Login.Model .UserInfo SelectUser(string userName, string password)
{
using (SqlConnection conn = new SqlConnection(DbUtil.ConnString))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT * FROM Users WHERE UserName=@UserName AND Password=@Password";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@UserName", userName));
cmd.Parameters.Add(new SqlParameter("@Password",password ));
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
Login.Model.UserInfo user = null;
while (reader.Read())
{
if (user == null)
{
user = new Login.Model.UserInfo();
}
// user.ID = reader.GetInt32(0);
user.UserName = reader.GetString(0);
user.password = reader.GetString(1);//密码不需要从数据库里面取得
if (!reader.IsDBNull(2))
{
user.Email = reader.GetString(2);
}
}
return user;
}
}
}
}
</span>
这是Score部分:
<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace Login.DAl
{
public class ScoreDAO
{
public void UpdateSore(string userName,int value)
{
using (SqlConnection conn = new SqlConnection(DbUtil.ConnString))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"INSERT INTO SCORES(UserName,Score,ID)Values(@UserName,@Score,1)";
cmd.Parameters.Add(new SqlParameter("@UserName",userName));
cmd.Parameters.Add(new SqlParameter ("@Score",value));
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
}
</span>
当然,除了这些还有一些SQL语句,因为每个人跟每个人的SQL对象以及用户名等都不一样,所以没有放上来;
如果有需要的可以私信我,一起探讨,OK,先到这里了....