asp.net一般处理程序对数据库的操作

it2022-05-05  129

一、新建一个网站,在网站下面添加一个一般处理程序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>

 

转载于:https://www.cnblogs.com/xiaoyaohan/p/9805956.html

相关资源:各显卡算力对照表!

最新回复(0)