1. 程式人生 > >asp.net一般處理程式對資料庫的操作

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 [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>