aspx 体现mvc 模式的增删改查
知道:
1、注意该aspx文件不需要重新生成,因为他是动态生成的,只需要刷新浏览器就行了。
2、aspx文件编写没有字段提示,需要重新生成一下就行了。
1、首先在aspx.cs文件中写一个数据表字段
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Web1.WebFormList { public partial class PersonList: System.Web.UI.Page { //1、先声明一个数据表格personlist,本节不采用三层架构 protected DataTable Person; protected void Page_Load(object sender, EventArgs e) { //2、将查询的数据放到声明的字段中 Person = SqlHelper.ExecuteQuery("select * from Emp123"); } } }
2、在aspx页面中写for循环进行遍历
(注意一个技巧:;这个需要右键项目重新生成一下。方便自动提示来调用声明的字段Person)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonList.aspx.cs" Inherits="Web1.WebFormList.PersonList" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <table style="text-align:center;border:solid 1px ;"> <thead> <tr><th>姓名</th><th>年龄</th><th>性别</th></tr> </thead> <tbody> <%for(int i=0;i<Persons.Rows.Count;i++){ System.Data.DataRow row=Persons.Rows[i];//读取每一行 %> <tr><td><%=row["Name"] %> </td><td><%=row["Age"] %></td> <td><% bool gender = (bool)row["gender"]; Response.Write(gender?"男":"女");%></td></tr> <%} %> </tbody> </table> </body> </html>
3、下面来写“新增”和“编辑”功能
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonList.aspx.cs" Inherits="Web1.WebFormList.PersonList" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <a href="PersonAddNew.aspx?action=addnew">新增</a><br /><br /> <table style="text-align:center;border:solid 1px ;"> <thead> <tr><th>姓名</th><th>年龄</th><th>性别</th><th>编辑</th></tr> </thead> <tbody> <%for(int i=0;i<Persons.Rows.Count;i++){ System.Data.DataRow row=Persons.Rows[i];//读取每一行 %> <tr><td><%=row["Name"] %> </td><td><%=row["Age"] %></td> <td><% bool gender = (bool)row["gender"]; Response.Write(gender?"男":"女");%></td><td><a href="PersonAddNew.aspx?action=edit&id=<%=row["id"] %>">编辑</td></tr> <%} %> </tbody> </table> </body> </html>
4、添加“新增”和“编辑”处理功能的页面aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonAddNew.aspx.cs" Inherits="Web1.WebFormList.PersonAddNew" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form action="PersonAddNew.aspx"> <input type="text" name="name" /> <input type="text" name="age" /> <input type="radio" name="gender" value="male" id="male" /><label for="male">男</label> <input type="radio" name="gender" value="female" id="female" /><label for="female">女</label> <input type="submit" name="btnSave" /> </form> </body> </html>
5、增加保存功能的添加
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Web1.WebFormList { public partial class PersonAddNew : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //1、如果请求的报文中的保存按钮不为空 string btnsave=Request["btnSave"]; if (btnsave!=null) { string name=Request["name"]; string age=Request["age"]; string gender=Request["gender"]; //执行插入 SqlHelper.ExecuteNonQuery("insert into Emp123(Name,Age,Gender) values(@Name,@Age,@Gender)" , new SqlParameter("@Name", name) , new SqlParameter("@Age", Convert.ToInt32(age)) , new SqlParameter("@Gender", gender == "male")//等式相等就是true.否则false ); //保存呢成功,重定向列表页面 Response.Redirect("PersonList.aspx"); } } } }
6、点击编辑的时候,有旧数据展示出来的处理
//2、编辑的时候加载数据 if (action=="edit") { int id = Convert.ToInt32(Request["id"]); DataTable td = SqlHelper.ExecuteQuery("select * from Emp123 where id=@id" ,new SqlParameter("@id",id)); //这里对以外的判断 DataRow row=td.Rows[0]; //4、对字段赋值 name=(string)row["Name"]; age=(int)row["Age"]; gender=(bool)row["Gender"]; //5\在aspx中引用声明的字段 //11、编辑的时候选中的id sid=(int)row["id"]; } else if (action == "addnew") { //6\进入新增添加默认的值 gender = true; age = 18; } else//7\ { Response.Write("action错误"); }
7、保存的时候还要考虑是新增保存的还是编辑之后保存的,,如果是编辑之后保存的需要,点击编辑的时,将编辑这一行的id存到隐藏字段中
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonAddNew.aspx.cs" Inherits="Web1.WebFormList.PersonAddNew" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form action="PersonAddNew.aspx"> <input type="hidden" name="action" value="<%=action %>" /> <input type="hidden" name="id" value="<%=sid %>" /> <input type="text" name="name" value="<%=name %>" /> <input type="text" name="age" value="<%=age %>" /> <input type="radio" name="gender" value="male" id="male" <%=gender?"checked":"" %> /><label for="male">男</label> <input type="radio" name="gender" value="female" id="female" <%=gender?"":"checked" %> /><label for="female">女</label> <input type="submit" name="btnSave" /> </form> </body> </html>
8、从人员列表页面点击情况可以知道,是“新增”还是“保存”按钮~!!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonList.aspx.cs" Inherits="Web1.WebFormList.PersonList" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <a href="PersonAddNew.aspx?action=addnew">新增</a><br /><br /> <table style="text-align:center;border:solid 1px ;"> <thead> <tr><th>姓名</th><th>年龄</th><th>性别</th><th>编辑</th></tr> </thead> <tbody> <%for(int i=0;i<Persons.Rows.Count;i++){ System.Data.DataRow row=Persons.Rows[i];//读取每一行 %> <tr><td><%=row["Name"] %> </td><td><%=row["Age"] %></td> <td><% bool gender = (bool)row["gender"]; Response.Write(gender?"男":"女");%></td><td><a href="PersonAddNew.aspx?action=edit&id=<%=row["id"] %>">编辑</td></tr> <%} %> </tbody> </table> </body> </html>
9、在aspx.cs文件中声明action字段。在保存的if语句中判断是那种情况?
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Web1.WebFormList { public partial class PersonAddNew : System.Web.UI.Page { //3、声明字段, protected string name; protected int age; protected bool gender; //8、判断是新增保存,还是编辑保存的。需要增加隐藏字段在aspx页面中 //9、从报文中取出action,,赋值到这个字段中、 protected string action; protected int sid; protected void Page_Load(object sender, EventArgs e) { //1、如果请求的报文中的保存按钮不为空 string btnsave = Request["btnSave"]; action = Request["action"]; if (btnsave != null) { string name = Request["name"]; string age = Request["age"]; string gender = Request["gender"]; //10、接着修改这里看 if (action=="addnew") { //执行插入 SqlHelper.ExecuteNonQuery("insert into Emp123(Name,Age,Gender) values(@Name,@Age,@Gender)" , new SqlParameter("@Name", name) , new SqlParameter("@Age", Convert.ToInt32(age)) , new SqlParameter("@Gender", gender == "male")//等式相等就是true.否则false ); } else if (action == "edit") { //执行更新 //更新那个行 int id = Convert.ToInt32(Request["id"]);//就是sid的值(隐藏字段的值) SqlHelper.ExecuteNonQuery("update Emp123 set Name=@Name,Age=@Age,Gender=@Gender where id=@id" , new SqlParameter("@Name", name) , new SqlParameter("@Age", Convert.ToInt32(age)) , new SqlParameter("@Gender", gender == "male") ,new SqlParameter("@id",id)); } else { Response.Write("action错误!!!"); } //保存呢成功,重定向列表页面 Response.Redirect("PersonList.aspx"); } else { //2、编辑的时候加载数据 if (action=="edit") { int id = Convert.ToInt32(Request["id"]); DataTable td = SqlHelper.ExecuteQuery("select * from Emp123 where id=@id" ,new SqlParameter("@id",id)); //这里对以外的判断 DataRow row=td.Rows[0]; //4、对字段赋值 name=(string)row["Name"]; age=(int)row["Age"]; gender=(bool)row["Gender"]; //5\在aspx中引用声明的字段 //11、编辑的时候选中的id sid=(int)row["id"]; } else if (action == "addnew") { //6\进入新增添加默认的值 gender = true; age = 18; } else//7、 { Response.Write("action错误"); } } } } }
10、设置断点验证;
体现MVC模式的开发~!!
view;
model ;