aspx 体现mvc 模式的增删改查

   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 ;

 

posted @ 2015-06-08 11:49  t800  阅读(183)  评论(0编辑  收藏  举报