前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >aspx 体现mvc 模式的增删改查

aspx 体现mvc 模式的增删改查

作者头像
静心物语313
发布2020-03-24 16:22:38
7.8K0
发布2020-03-24 16:22:38
举报

aspx 体现mvc 模式的增删改查

知道:

1、注意该aspx文件不需要重新生成,因为他是动态生成的,只需要刷新浏览器就行了。 2、aspx文件编写没有字段提示,需要重新生成一下就行了。

1、首先在aspx.cs文件中写一个数据表字段

代码语言:javascript
复制
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)

代码语言:javascript
复制
<%@ 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、下面来写“新增”和“编辑”功能

代码语言:javascript
复制
<%@ 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文件

代码语言:javascript
复制
<%@ 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、增加保存功能的添加

代码语言:javascript
复制
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、点击编辑的时候,有旧数据展示出来的处理

代码语言:javascript
复制
//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存到隐藏字段中

代码语言:javascript
复制
<%@ 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、从人员列表页面点击情况可以知道,是“新增”还是“保存”按钮~!!

代码语言:javascript
复制
<%@ 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语句中判断是那种情况?

代码语言:javascript
复制
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 ;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档