什么是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,然后点击“确定”。
4、创建一个ASP.NET Web应用程序,用来显示users中的所有内容。
步骤:文件--新建--项目,在弹出来的“新建项目”对话框中,已安装的模板中选择“Visual C#”--“ASP.NET Web应用程序”,名称处取名叫“myweb”,位置选择:e:\test\Solution1,解决方案中选择“添加到解决方案”--然后点击“确定”。
此时,右边的解决方案资源管理器中多出了一个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,再点击确定。
这样,右边的引用中就多了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;
}
更多详细>>>
评论