您的位置:首页 > 职场人生

黑马程序员之C#学习笔记:最简单的三层架构学习总结

2013-01-17 10:34 786 查看
-----------------------------------2345王牌技术员联盟2345王牌技术员联盟、期待与您交流!--------------------------------



第一步:.右键解决方案,添加,新建项目,c#类库,命名为MODEL,对其下的类重命名:Model

代码

/// <summary>

/// 初始化登录名称、登录密码(Model类)

/// </summary>

private string adminUser =string.Empty; //设置用户名称为空值

private string adminPwd =string.Empty; //设置用户密码为空值

public string AdminUser

{

get

{

return this.adminUser;

}

set

{

this.adminUser = value;

}

}

public string AdminPwd

{

get

{

return this.adminPwd;

}

set

{

this.adminPwd = value;

}

}

第二步.右键解决方案,添加,新建项目,C#类库,命名为BLL,对其下的类重命名:Bll

代码

/// <summary>

/// 用户登录(BLL类)

/// </summary>

/// <paramname="m"></param>

///<returns></returns>

public static int sysLogin(Model m)

{

string str ="adminValid"; //存储过程名称

SqlParameter[] sqlParameter =

{

//将UI层传递过来的用户名称和密码赋值给存储过程中的变量分别是adminUser和adminPwd(注意大小写)

new SqlParameter("adminUser",m.AdminUser),

new SqlParameter("adminPwd",m.AdminPwd)

};

DAL d = new DAL();

returnInt32.Parse(d.ExecuteScalar(str,sqlParameter));

}

第三步.右键解决方案,添加,新建项目,C#类库,命名为DAL,对其下的类重命名:Dal

数据库名要自己进行改动:

代码

/// <summary>

/// 新建一个SQL登录链接

/// </summary>

///<returns></returns>

private static SqlConnectioncon()

{

return newSqlConnection("Data Source=localhost;Initial Catalog=MYDB;IntegratedSecurity=SSPI;");

}

/// <summary>

/// 执行操作(DAL类)

/// </summary>

/// <paramname="str"></param>

/// <paramname="sql"></param>

///<returns></returns>

public stringExecuteScalar(string str, SqlParameter[] sql)

{

SqlConnection con =DAL.con();

try

{

con.Open();

SqlCommand com = newSqlCommand(str, con);

com.CommandType =CommandType.StoredProcedure;

com.Parameters.AddRange(sql);

returnConvert.ToString(com.ExecuteScalar()); //返回受影响的行数(例如影响的行数为1,那么返回数值1到BLL层,然后BLL层将数值1返回到UI层)

}

catch (Exception Error)

{

throw Error;

}

finally

{

con.Close();

}

}

第四步.右键解决方案,添加,新建网站,asp.net网站,命名为Login,页面中加入两个TextBox控件和一个Label控件,还有一个Button,以下为Button的点击事件代码:

代码

//UI层

Model m = new Model(); //实例化Model类

m.AdminUser =this.TextBox1.Text.ToString(); //将文本框1中的值传递给Model类中的AdminUser

m.AdminPwd =this.TextBox2.Text.ToString(); //将文本框2中的值传递给Model类中的AdminPwd

if (BLL.sysLogin(m) > 0)

{

this.Label1.Text = "登录成功!马上进入管理平台...";

}

else

{

this.Label1.Text = "用户或密码错误,请重新输入!";

}

第五步: 写后台数据库存储过程

代码

--存储过程(按自己的数据库进行改动)

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

ALTER PROC [dbo].[adminValid]

@adminUser varchar(20),@adminPwd varchar(120)

AS

SELECT COUNT(*) FROM admin WHERE adminUser = @adminUser AND adminPwd =@adminPwd

---------------------------------------------------
2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: