VS2010三层架构实例--显示某张表中的所有记录

什么是VS三层架构?如何实现vs三层架构?这是用一个vs2010+sql server2005来举个例子,其他版本的VS和sql server都可以,暂时不建设使用access数据库。
//功能:VS三层架构实例--显示某张表中的所有记录
//来源:www.aspbc.com
//作者:wangsdong
//原创文章,转载请保留此信息
具体步骤:
1、打开sql server2005,在里面创建数据库test2,然后在数据库创建users表,里面有三个字段id(自动增加),username(varchar(50)),password(varchar(50)),然后使用insert插入几条记录。

2、创建一个文件夹,用来存储该程序,假设我放在e:\test文件夹下。

3、打开VS2010,创建解决方案:
步骤:文件--新建--项目,在弹出来的“新建项目”对话框中,已安装的模板中选择“其他项目类型”--“Visual Studio解决方案”,然后在右边选择“空白解决方案”,其次在名称中输入“Solution1”,然后在位置中选择上面的新建的文件夹:e:\test,然后点击“确定”。
VS2010三层架构实例


4、创建一个ASP.NET Web应用程序,用来显示users中的所有内容。
步骤:文件--新建--项目,在弹出来的“新建项目”对话框中,已安装的模板中选择“Visual C#”--“ASP.NET Web应用程序”,名称处取名叫“myweb”,位置选择:e:\test\Solution1,解决方案中选择“添加到解决方案”--然后点击“确定”。
VS2010三层架构实例
此时,右边的解决方案资源管理器中多出了一个myweb,里面有许多文件。这里双击里面的web.config文件,向里面添加数据库连接代码。将原来里面的代码
<connectionStrings>
< add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
< /connectionStrings>
换成
<connectionStrings>
< add name="ConnectionString" connectionString="Max Pool Size = 512;Server=.;User ID=sa;Password=123456;Initial Catalog=test2;Connect Timeout=0;"/>
< /connectionStrings>
里面的参数意思见:asp.net数据库编程中连接sql server2005代码

5、创建一个类库(Data)来连接数据库
步骤:文件--新建--项目,在弹出来的“新建项目”对话框中,已安装的模板中选择“Visual C#”--“类库”,名称:Data;解决方案:选择添加到解决方案;位置:E:\test\Solution1,然后点击“确定”。此时右边的解决方案资源管理器中多了一个Data。找到class1.cs文件,右击重命名改为DBConn.cs;然后双击这个文件,左边出现它的所有代码。 这里开始做引用了,类型asp中的include file文件,过程比asp多一步。操作过程:右击Data目录下面的引用--添加引用。在弹出的添加引用对话框中,选择.net选择卡,找到System.Configuration,再点击确定。
VS2010三层架构实例
这样,右边的引用中就多了System.Configuration了。引用这个文件的目的是获取web.config文件中的值,这里主要用来获取连接数据库字符串。此时我们开始处理DBConn.cs文件了。先在代码中引用刚才引用的文件,在这个文件顶部using System.Text;下面加上using System.Configuration;还要加上一个操作sql server的文件using System.Data.SqlClient;然后开始定义一个连接数据库函数,如下:
public SqlConnection getconn()
{
  string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
  SqlConnection conn = new SqlConnection(connstr);
  return conn;
}
这段代码要放到
public class DBConn
{
//要放到这个地方
}
要放到这里的两个大括号之间。


6、Model层,直接对数据库的表中的字段赋值和取出某个字段中的值的层。
创建的方法同Data层只是最后的文件名叫Model而已。具体步骤:
步骤:文件--新建--项目,在弹出来的“新建项目”对话框中,已安装的模板中选择“Visual C#”--“类库”,名称:Model;解决方案:选择添加到解决方案;位置:E:\test\Solution1,然后点击“确定”。此时右边的解决方案资源管理器中多了一个Model。找到class1.cs文件,右击重命名改为User.cs;然后双击这个文件,左边出现它的所有代码。然后再
public class User
{
}
的代码之间添加以下代码:
public User() { }
private string _username;
public string username
{
set { _username = value; }
get { return _username; }
}
private string _password;
public string password
{
set { _password = password; }
get { return _password; }
}

到此为止,上面还未涉及到VS的三层架构,以上都是为三层架构做准备的,从下面开始正式开始三层架构。
三层架构是逻辑上的三层,只是有数据的调取方法的顺序有关,在开发的过程中没有多大的区别。

7、数据访问层(Dal),该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
创建的步骤如第6条,名称:Dal;解决方案:添加到解决方案;路径为e:\test\Solution1
然后将Dal目录下面的class1.cs改名为UserDB.cs。这里要对Model层进行操作,所以要引用Model层。方法,右击引用--添加引用--选择“项目”选项卡--选择Model--确定;然后在UserDB.css的顶部加上using Model;由于这层要对数据库进行操作,需要加上
using Data;(数据库连接字符串在这里)
using System.Data;
using System.Data.SqlClient;
然后在
public class UserDB
{
}
之间添加一个显示users表中的所有用户信息的函数,如下:
public string getlist()
{
string str = "";
Data.DBConn dbconn = new DBConn();
SqlConnection myconn = dbconn.getconn();
myconn.Open();

string sql = "select * from users order by id desc";
SqlDataAdapter da = new SqlDataAdapter(sql, myconn);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
str = "<table cellpadding=0 cellspacing=0 border=1 width=500 >\r\n";
string username, password;
foreach (DataRow m in ds.Tables[0].Rows)
{
username = m["username"].ToString();
password = m["password"].ToString();
str += "<tr>\r\n";
str += " <td>" + username + "</td>\r\n";
str += " <td>" + password + "</td>\r\n";
str += "</tr>\r\n";
}
str += "</table>\r\n";
}
da.Dispose();
da = null;
myconn.Dispose();
myconn.Close();
return str;
}

8、业务层(Bll),针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
创建的方法同上。名称为Bll;解决方案:添加到解决方案;路径为e:\test\Solution1;然后将Bll目录下面的class1.cs改名为UserBll.cs了。这层要引用Dal层,所以要添加引用Dal,方法同上;然后在UserBll.cs顶部加以下代码using Dal;然后双击UserBll.cs,在左边
public class UserBll
{
}
中间添加以下代码
public string getuserlist()
{
Dal.UserDB db = new UserDB();
return db.getlist();
}

9、表现层(UI),通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
现在开始给页面添加代码了,让查询出来的内容显示到页面上来。步骤:展开myweb,找到default.aspx文件,双击。在左边的</asp:Content>上面加上代码<%=str%>。此时str有个红色的下划线,因为没有定义这个变量。点击default.aspx前面的加号,展开default.aspx,展开后,双击default.aspx.cs。这里需要引用Bll文件,右击里面的引用,添加引用,选择“项目”,找到Bll,然后点击“确定”,最后在顶部加上using Bll;。接下来定义str变量,在protected void Page_Load(object sender, EventArgs e)上面加上public string str;然后在protected void Page_Load(object sender, EventArgs e)两个大括号之间添加以下代码:
Bll.UserBll ub = new UserBll();
str = ub.getuserlist();
就可以了

10、右击default.aspx,选择“在浏览器中查看”。搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值