第一次使用asp.net三层架构建立网站(失败之作)——步骤+肤浅理解
本文是参考网上资料加上本人领会实践得出,有什么不对的地方请各位路过高手指教。
理论上三层架构指的是 表现层、 业务逻辑层(BLL)、 数据访问层(DAL)。
上网下载的程序范例中,一般而言,都是BLL,DAL各一个文件夹,一个Model文件夹,一个web文件夹。BLL和DAL文件夹显然就是那两层的文件,而Model文件夹,据我理解,是放一些自定义的公用类。我们最后真正需要放到服务器的是web文件夹。
步骤:
1、建立DAL数据访问层。新建一个空项目,项目名为DAL。然后,添加一个类文件,假设名为Cn.cs。然后在该文件里面添加数据访问层的代码。我试写了一下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Collections.Generic;
using System.Text;
namespace DAL
{
public class Cn
{
public static SqlConnection con()
{
try
{
SqlConnection cnnew = new SqlConnection(ConfigurationManager.ConnectionStrings["mydata"].ConnectionString);
return cnnew;
}
catch
{
return null;
}
}
public static bool insert(string que)
{
using (SqlConnection cn = Cn.con())
{
try
{
cn.Open();
SqlCommand cmd = new SqlCommand(que, cn);
int count = Convert.ToInt32(cmd.ExecuteNonQuery());
cn.Close();
if (count > 0)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
}
}
}
因为要用到数据库连接,所以命名空间里加了System.Data.SqlClient,默认情况下没有,又因为要用到ConfigurationManager,所以我也添加了System.Configuration。这里要注意的是,默认情况下没有引用System.Configuration.dll,所以要在解决方案管理器那添加对System.Configuration的引用。
数据访问层搞定,然后就要编译它了,默认情况下,它会生成exe,所以要在解决方案管理器那里,项目属性——应用程序——输出类型,改成类库。然后按生成,就会在bin文件夹里生成了DAL.dll和DAL.pdb文件,最后我们要用的也是这两个文件。
2、建立BLL业务逻辑层。跟DAL一样的建立方法,注意是两个不同的项目。要添加对生成的DAL.dll的引用。而且要在命名空间里加上DAL的命名空间。
贴上我自己试写的代码,不知道业务逻辑层是不是写这些东西的。。。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System;
using System.Collections.Generic;
using System.Text;
using DAL;
namespace BLL
{
public class insertnew
{
public static bool test(string name)
{
return Cn.insert("insert into table1 (name) values ('" + name + "')");
}
}
}
好了,差不多大功告成了。
3、建立一个asp.net网站(最熟悉的步骤)。网站的项目名称就叫web吧,然后就在aspx页里加了一个textbox,一个button,给button添加一个按钮事件,让它来调用BLL的方法。这里只需要添加对BLL的引用,就会自动地把BLL.dll,BLL.pdb,DAL.dll,DAL.pdb复制到bin文件夹里面去了。
最后贴上web\Default.aspx.cs的代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BLL;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text != null)
{
if (insertnew.test(TextBox1.Text) == true)
Response.Write("success");
else Response.Write("false");
}
}
}
忘了,还要在web.config里面添加数据库连接字符串
<connectionStrings>
<add name="mydata" connectionString="Data Source=.;User ID=sa;password=******;Initial Catalog=testbase;" providerName="System.Data.SqlClient"/>
</connectionStrings>
打完收工(*^__^*) 嘻嘻……