zoukankan      html  css  js  c++  java
  • asp.net一般处理程序对数据库的操作

    一、新建一个网站,在网站下面添加一个一般处理程序DemoHandler.ashx,代码如下:

    <%@ WebHandler Language="C#" Class="DemoHandler" %>
    
    using System;
    using System.Web;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Text;
    
    public class DemoHandler : IHttpHandler {
    
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/html";
            //context.Response.WriteFile("1.jpg");
            StringBuilder sb = new StringBuilder();//拼接字符串用
    
    
            sb.Append("<html><head></head><body>");
    
    
    
            #region 拼接table
            //拼接表头 表头要用<th></th>标签
            sb.Append("<table><tr><th>Id</th><th>UserNumber</th><th>PassWord</th><th>ZhanMing</th><th>操作</th></tr>");
            //读取数据库中的数据 用三层
            string str = ConfigurationManager.ConnectionStrings["Pwd"].ConnectionString;
            using (SqlConnection conn=new SqlConnection (str))
            {
                conn.Open();
                string sql = "select *from 用户名和密码";
                using (SqlCommand cmd=new SqlCommand (sql,conn))
                {
                    using (var reader=cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            //拼接字符串
                            sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> <td><a href='ShowDetial.ashx?id={0}' > 详情</a></td></tr>",
                                reader.GetInt32(0), reader["UserName"], reader["PassWord"], reader["zhanming"]);
                        }
                    }
    
                }
            }
            sb.Append("</table>");
    
            #endregion
            sb.Append("</body></html>");
                context.Response.Write(sb.ToString());
    
        }
    
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }

    二、打开web.config,在里面将连接数据库字符串 写入:

    <?xml version="1.0" encoding="utf-8"?>
    
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    
    <configuration>
    
      <connectionStrings>
        <add name="Pwd" connectionString="server=WIN7U-20170517Z;uid=sa;pwd=123456;database=Pwd" />
      </connectionStrings>
        <system.web>
          <compilation debug="true" targetFramework="4.5.2" />
          <httpRuntime targetFramework="4.5.2" />
        </system.web>
    
    </configuration>

    当点击 操作的“详情”时,跳转到ShowDetil.ashx页面

    代码如下:

    <%@ WebHandler Language="C#" Class="ShowDetil" %>
    
    using System;
    using System.Web;
    using System.Text;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Data;
    using System.IO;
    
    public class ShowDetil : IHttpHandler {
    
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/html";
            //context.Response.Write("Hello World");
    
            StringBuilder sb = new StringBuilder();//拼接字符串
    
            //需要拿到当前的ID
            string id= context.Request.QueryString["id"];
            int qid = int.Parse(id);//把他转换为整形
                                    //下面链接数据库来获取ID
            string strLink = ConfigurationManager.ConnectionStrings["Pwd"].ConnectionString;//存放连接字符串
            string sql = "select *from 用户名和密码 where id=@id ";
    
            using (SqlDataAdapter adapter=new SqlDataAdapter (sql,strLink))
            {
                //传递参数
                adapter.SelectCommand.Parameters.Add("@id", qid);
    
                //在该网页中填充一个表格
                DataTable dt = new DataTable();
                adapter.Fill(dt);
    
                //下面需要拼接表格了 我们可以写在一个html模板中,所以可以新建一个HTML模板
    
                sb.AppendFormat("<tr><td>ID:</td><td>{0}</td></tr>", dt.Rows[0]["Id"]);//id信息
                sb.AppendFormat("<tr><td>UserName:</td><td>{0}</td></tr>", dt.Rows[0]["UserName"]);
                sb.AppendFormat("<tr><td>PassWord:</td><td>{0}</td></tr>", dt.Rows[0]["PassWord"]);
                sb.AppendFormat("<tr><td>ZhanMing:</td><td>{0}</td></tr>", dt.Rows[0]["zhanming"]);
            }
    
            //把HTML模板读取出来,然后替换数据占位符
            //把相对于网站根目录的路径转成磁盘上的绝对路径
            string path= context.Request.MapPath("/ShowDetailTemp.html");
            string textTemp=   File.ReadAllText(path);//将整个HTML模板读出来赋给textTemp
            string result= textTemp.Replace(" @StrTrBody", sb.ToString());
            context.Response.Write(result);
    
    
    
    
        }
    
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }

    当鼠标点击 详情 时,显示的页面可以写在一个html 模板中,代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
    </head>
    <body>
        <table>
            @StrTrBody 
        </table>
    </body>
    </html>
  • 相关阅读:
    Aviator
    Docker是什么
    vulnhub--SickOs1.1
    vulnhub--HackInOS
    本地浏览器远程访问服务器tensorboard(MobaXterm)
    dogecoin
    python多进程
    gpu
    python调用父类(超类)
    linux更改终端显示颜色(用户名颜色等)
  • 原文地址:https://www.cnblogs.com/xiaoyaohan/p/9805956.html
Copyright © 2011-2022 走看看