三层架构下的GridView的增删改.docx

上传人:b****6 文档编号:3343278 上传时间:2022-11-21 格式:DOCX 页数:14 大小:83.79KB
下载 相关 举报
三层架构下的GridView的增删改.docx_第1页
第1页 / 共14页
三层架构下的GridView的增删改.docx_第2页
第2页 / 共14页
三层架构下的GridView的增删改.docx_第3页
第3页 / 共14页
三层架构下的GridView的增删改.docx_第4页
第4页 / 共14页
三层架构下的GridView的增删改.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

三层架构下的GridView的增删改.docx

《三层架构下的GridView的增删改.docx》由会员分享,可在线阅读,更多相关《三层架构下的GridView的增删改.docx(14页珍藏版)》请在冰豆网上搜索。

三层架构下的GridView的增删改.docx

三层架构下的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"/>

后台代码如下所示:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingDiaryModel;

publicpartialclass_Default:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

IsPostBack)

{

Bind();

}

}

protectedvoidBind()

{

GridView1.DataSource=DiaryBLL.UserManage.GetAllUsers();

GridView1.DataBind();

}

protectedvoidButton1_Click(objectsender,EventArgse)

{

Usersuser=newUsers();

user.UserName=this.tb_username.Text.ToString().Trim();

user.Password=this.tb_pwd.Text.ToString().Trim();

boolbol=DiaryBLL.UserManage.Add(user);

if(bol)

{

Response.Redirect("Default.aspx");

}

}

protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)

{

intUserID=Convert.ToInt32((GridView1.Rows[e.RowIndex].FindControl("Label1")asLabel).Text);

boolbol=DiaryBLL.UserManage.Delete(UserID);

if(bol)

{

Bind();

}

else

{

Response.Write("");

}

}

protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)

{

if(e.Row.RowType==DataControlRowType.DataRow)

{

LinkButtonlb=e.Row.FindControl("LinkButton2")asLinkButton;

if(lb.Text=="删除")

{

lb.Attributes.Add("onclick","returnconfirm('确认要删除么?

');");

}

}

}

///

///让当前处于修改状态

///

///

///

protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)

{

GridView1.EditIndex=e.NewEditIndex;

Bind();

}

///

///让当前行处于绑定状态

///

///

///

protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)

{

GridView1.EditIndex=-1;

Bind();

}

///

///更新至数据库

///

///

///

protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)

{

Usersuser=newUsers();

user.UserID=Convert.ToInt32((GridView1.Rows[e.RowIndex].FindControl("Label1")asLabel).Text);

user.UserName=(GridView1.Rows[e.RowIndex].FindControl("TextBox2")asTextBox).Text.ToString();

user.Password=(GridView1.Rows[e.RowIndex].FindControl("TextBox3")asTextBox).Text.ToString();

boolbol=DiaryBLL.UserManage.Modify(user);

if(bol)

{

Response.Write("");

GridView1.EditIndex=-1;

Bind();

}

else

{

Response.Write("");

}

}

}

最后重新生成下解决方案,然后运行你的网站!

祝大家成功!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1