三层架构下的GridView的增删改.docx
《三层架构下的GridView的增删改.docx》由会员分享,可在线阅读,更多相关《三层架构下的GridView的增删改.docx(14页珍藏版)》请在冰豆网上搜索。
三层架构下的GridView的增删改
1新建一个数据库test,新建一个表Users,表中有如下字段(ID,username,password)。
其中ID为表示字段。
结构如下图:
2新建三个类库DiaryBLL(业务逻辑层),DiaryDAL(数据访问层),DiaryModel(业务实体层),将上述三个类库放至解决方案DiaryPro中,然后在新建一个网站DiaryWeb。
然后右键单击网站,设为启动项目,结构图如下:
3添加类库的引用关系
DiaryBLL添加DiaryDAL和DiaryModel,如下图所示:
DiaryDAL添加DiaryModel,如下图所示:
表示层Web添加上述三个,如下图所示:
4类库中类的编写
1)DiaryModel(业务实体层),新建一个User类代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceDiaryModel
{
[Serializable]//序列化
publicclassUsers
{
int_UserID;
string_UserName;
string_Password;
publicintUserID
{
get{return_UserID;}
set{_UserID=value;}
}
///
///用户名
///
publicstringUserName
{
get{return_UserName;}
set{_UserName=value;}
}
///
///密码
///
publicstringPassword
{
get{return_Password;}
set{_Password=value;}
}
}
}
该类可以获得User类的各个字段。
2)DiaryDAL(数据访问层)
由于本层要用到数据库的相关操作,所以这里用到了微软封装的DBHelper.cs类。
DBHelper类访问了Web网站的配置文件,获得连接字符串,DiaryDAL要添加引用System.configuration。
Web网站的Web.config文件相关代码如下:
(将DBHelper.cs类纺织DiaryDAL目录下,要注意的是DBHelper类下的命名空间要改为DiaryDAL)
新建一个UserService.cs类,实现增删改查等相关操作,具体代码如下所示:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Data;
usingDiaryModel;//记得要添加引用
namespaceDiaryDAL
{
publicclassUserService
{
//添加
publicstaticboolAdd(Usersuser)
{
stringsql="insertintoUsers(username,password)values(@username,@password)";
Dictionarydic=newDictionary();
dic.Add("@username",user.UserName);
dic.Add("@password",user.Password);
returnDBHelper.ExecuteNonQuery(sql,dic)>0?
true:
false;
}
//删除
publicstaticboolDelete(intUserID)
{
stringsql="deletefromUserswhereID=@UserID";
Dictionarydic=newDictionary();
dic.Add("@UserID",UserID);
returnDBHelper.ExecuteNonQuery(sql,dic)>0?
true:
false;
}
//修改
publicstaticboolModify(Usersuser)
{
stringsql="updateUserssetusername=@username,password=@passwordwhereID=@UserID";
Dictionarydic=newDictionary();
dic.Add("@username",user.UserName);
dic.Add("@password",user.Password);
dic.Add("@UserID",user.UserID);
returnDBHelper.ExecuteNonQuery(sql,dic)>0?
true:
false;
}
//显示
publicstaticListGetAllUsers()
{
stringsql="select*fromUsers";
DataTabledt=DBHelper.GetDataSet(sql);
Listlist=newList();
foreach(DataRowdrindt.Rows)
{
Usersuser=newUsers();
user.UserID=(int)dr["ID"];
user.UserName=dr["username"].ToString();
user.Password=dr["password"].ToString();
list.Add(user);
}
returnlist;
}
}
}
3)DiaryBLL(业务逻辑层)
新建一个UserManage.cs类,具体代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Data;
usingDiaryModel;
namespaceDiaryBLL
{
publicclassUserManage
{
publicstaticboolAdd(Usersuser)
{
returnDiaryDAL.UserService.Add(user);
}
publicstaticboolDelete(intUserID)
{
returnDiaryDAL.UserService.Delete(UserID);
}
publicstaticboolModify(Usersuser)
{
returnDiaryDAL.UserService.Modify(user);
}
publicstaticListGetAllUsers()
{
returnDiaryDAL.UserService.GetAllUsers();
}
}
}
4Web网站的设计
为了实现三层架构下的增删改操作,我们用到了GridView控件,界面如下如所示:
GridView的设计过程如下:
拖放一个GridView控件到页面中,然后添加三个BoundField字段,HeaderText属性分别为用户ID、用户名、密码,绑定字段分别为ID,username,password,一个CommandField字段,显示编辑按钮和删除按钮,然后再将上述四个字段转化为模板列。
前台代码如下:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
无标题页
用户列表:
GridViewID="GridView1"runat="server"AutoGenerateColumns="False"
BackColor="White"BorderColor="#CCCCCC"BorderStyle="None"BorderWidth="1px"
CellPadding="3"PageSize="4"Width="778px"OnRowDeleting="GridView1_RowDeleting"OnRowDataBound="GridView1_RowDataBound"OnRowEditing="GridView1_RowEditing"OnRowCancelingEdit="GridView1_RowCancelingEdit"OnRowUpdating="GridView1_RowUpdating">
TemplateFieldHeaderText="用户ID">
LabelID="Label1"runat="server"Text='<%#Bind("UserID")%>'>
Label>
TemplateField>
TemplateFieldHeaderText="用户名">
TextBoxID="TextBox2"runat="server"Text='<%#Bind("UserName")%>'>
TextBox>
LabelID="Label2"runat="server"Text='<%#Bind("UserName")%>'>
Label>
TemplateField>
TemplateFieldHeaderText="密码">
TextBoxID="TextBox3"runat="server"Text='<%#Bind("Password")%>'>
TextBox>
LabelID="Label3"runat="server"Text='<%#Bind("Password")%>'>
Label>
TemplateField>
TemplateFieldHeaderText="操作"ShowHeader="False">
LinkButtonID="LinkButton1"runat="server"CausesValidation="True"CommandName="Update"
Text="更新">
LinkButton>
LinkButtonID="LinkButton2"runat="server"CausesValidation="False"CommandName="Cancel"
Text="取消">
LinkButton>
LinkButtonID="LinkButton1"runat="server"CausesValidation="False"CommandName="Edit"
Text="编辑">
LinkButton>
LinkButtonID="LinkButton2"runat="server"CausesValidation="False"CommandName="Delete"OnClientClick="javascript:
returnconfirm('确认要删除么?
');"Text="删除">
LinkButton>
TemplateField>
GridView>
添加用户
用户名:
TextBoxID="tb_username"runat="server">
TextBox>
密码:
TextBoxID="tb_pwd"runat="server">
TextBox>
ButtonID="Button1"runat="server"Text="添加"OnClick="Button1_Click"/>