zoukankan      html  css  js  c++  java
  • 02Modify.ashx(修改班级信息)

    02Modify.html 修改

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>修改班级</title>
        <style type="text/css">
            #tbList {
                border:1px solid #0094ff;
                border-collapse:collapse;
                300px;
                margin:50px auto;
            }
            #tbList th,td{
                border:1px solid #0094ff;
                padding:5px;
            }
        </style>
    </head>
    <body>
        <form method="post" action="02Modify.ashx">
            <table id="tbList">
                <tr>
                    <td>班级名称:</td>
                    <td><input type="text" id="txtName" name="txtName" value="@{name}" /></td>
                </tr>
                <tr>
                    <td>班级人数:</td>
                    <td><input type="text" id="txtCount" name="txtCount" value="@{count}" /></td>
                </tr>
                <tr>
                    <td colspan="2">
                        <input type="submit" value="确定" />
                        <input type="button" id="btnCancel" value="取消" onclick="window.location='01List.ashx'" />
                    </td>
                </tr>
            </table>
            <input type="hidden" name="txtId" value="@{id}" />
        </form>
    </body>
    </html>

    02Modify.ashx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.SqlClient;
    
    namespace AspNetAshx
    {
        /// <summary>
        /// 修改的 班级数据
        /// </summary>
        public class _02Modify : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/html";
                //重要:因为当前页面,有两个业务:
                //1.根据id展示要修改的数据(get请求)
                //2.是接受用户在表单中修改后的新的数据,并更新到数据库中(post请求)
    
                if (context.Request.HttpMethod.ToLower() == "get")//get过来,执行业务一
                {
                    BusOne();//查询并生成 修改页面
                }
                else//post过来,执行业务二
                {
                    DoModify();
                }
            }
    
            #region 1.0业务一、查询并生成 修改页面 -void BusOne()
            /// <summary>
            /// 查询并生成 修改页面
            /// </summary>
            void BusOne()
            {
                //1.获取 要修改的 班级id
                string strId = HttpContext.Current.Request.QueryString["id"];
                //2.验证 id 是否合法
                if (CommonHelper.IsNum(strId))//验证通过
                {
                    //3.根据id 查询 要修改的 班级数据
                    SqlDataReader dr = SqlHelper.ExcuteReader("select * from Classes where CId = " + strId);
                    //if (dr.HasRows)
                    //{
                    //此处 不使用 while的原因是因为 我们根据id查询,肯定只有一行!
                    if (dr.Read())//调用Read的时候就去数据库的 【查询结果集】 里 获取了一行数据
                    {
                        //4.读取修改页面的模版
                        string strHtml = CommonHelper.GetFileContent("02Modify.html");
                        //5.用 数据库中读取到的数据 替换 掉模版里的 3个占位符
                        strHtml = strHtml.Replace("@{name}", dr["CName"].ToString())//将 班级名 替换到 班级名 文本框的value中
                                         .Replace("@{count}", dr["CCount"].ToString())//将 班级人数 替换到 班级人数 文本框的value中
                                         .Replace("@{id}", dr["CId"].ToString());//将 班级id 替换到 班级id 隐藏域的value中
                        //6.将生成的修改页面 html 返回给浏览器
                        HttpContext.Current.Response.Write(strHtml);
                    }
                    //关闭 读取器,自动关闭连接对象
                    dr.Close();
                    //}
                }
                else
                {//4.验证失败 
                    //通过输出js 先让浏览器用户看到错误消息,然后再直接通过js控制浏览器跳转到 列表页面(再次请求服务器的列表页面)
                    HttpContext.Current.Response.Write("<script>alert('您的参数有误!您什么意思~~!');window.location='01List.ashx';</script>");
                }
            } 
            #endregion
    
            #region 2.0 业务二、执行修改 -void DoModify()
            /// <summary>
            /// 业务二、执行修改
            /// </summary>
            void DoModify()
            {
                //1.获取用户表单post提交的数据
                string strName = HttpContext.Current.Request.Form["txtName"].Trim();
                string strCount = HttpContext.Current.Request.Form["txtCount"];
                string strId = HttpContext.Current.Request.Form["txtId"];
                //2.验证数据
                if (string.IsNullOrEmpty(strName) || !CommonHelper.IsNum(strCount) || !CommonHelper.IsNum(strId))
                {
                    CommonHelper.WriteJs("对不起,您输入的数据格式错误~请仔细检查~~", "02Modify.ashx?id=" + strId);
                }
                else
                {
                    //3.更新到数据库中
                    SqlParameter[] paras = { 
                                       new SqlParameter("Cname",strName),
                                       new SqlParameter("CCount",strCount),
                                       new SqlParameter("Cid",strId)
                                       };
                    int res = SqlHelper.ExcuteNoneQuery("update Classes set CName=@Cname,CCount=@CCount where CId =@Cid", paras);
                    if (res > 0)
                    { //删除成功
                        CommonHelper.WriteJs("修改成功~!", "01List.ashx");
                    }
                    else
                    { //删除失败
                        CommonHelper.WriteJs("修改失败~!如果您是美女,请联系管理员~~~qq:111111", "02Modify.ashx?id=" + strId);
                    }
                }
            }
            #endregion
    
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
  • 相关阅读:
    开发和使用自定义服务器控件
    用户认证管理设计方案(转)
    用 @@ERROR 检测几条语句的成功
    在 ASP.NET 中支持数据库缓存相关性
    给新人程序员的八点建议(转)
    DataTable添加列
    各城市工资多少才等于北京5000元工资的生活?
    连续读取区块应用程序设置值
    VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题 (转)
    帮你免于失业的十大软件技术
  • 原文地址:https://www.cnblogs.com/hehehehehe/p/5105856.html
Copyright © 2011-2022 走看看