asp.net一般處理程式對資料庫的操作
阿新 • • 發佈:2018-11-11
一、新建一個網站,在網站下面新增一個一般處理程式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 [email protected] "; 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>