实现步骤:
1.把静态网页读到内存中
2.把班级信息从数据库中读出来(运用ADO.NET)
3.创建一个虚拟表存适配后的数据
4.将SQL数据库和C#连接
5.创建SQL适配器对象,通过适配器对象执行SQL语句
6.通过循环语句,将虚拟表DataTable里的数据,拼写成有html标记包裹住的字符串
7.采用替换把生成的字符串 嵌入静态页的tbody标签里
8.把生成的完整的html页面输出到客户端
实现细节:
1.context.Reponse.MapPath("ClassList.html")可以映射出ClassList.html的绝对路径
2.web走的是相对路径,windows走的是绝对路径
3.StringBuilder用来处理字符串,可以拼接字符串,需要使用using System.Text命名空间
4.访问数据库需要导入using System.Data;//引用数据库
using System.Data.SqlClient;//连接数据库,这两个命名空间
5. string connStr = "server=.;database=StudentMIS;integrated security=true";
连接数据库的字符串,integrated security=true表示可以在不知道数据库用户名和密码的情况下时,
依然可以连接数据库,Server= 后边的那个“.”就是本地服务器,相当于localhost,
6.SqlConnection连接数据库,SqlConnection connection =
new SqlConnection(connStr), 由于connection对象在跟数据库创建了连接后,
会一直保持这种连接,这样会消耗很多服务器性能,所以当我们访问数据库结束后,
要主动去销毁这个连接,以释放资源。
7.销毁连接释放资源的代码:connection.Close(); connection.DisPose();我们可以借用using语句来清理资源
8.using语句有两种用法,①导入命名空间,②自动释放using包裹住语句创建的对象
9.SqlDataAdapter sda = new SqlDataAdapter(cmd);创建适配器对象
10.DataTable中有一个属性Rows,顾名思义,就是行的集合。通过这个属性,可以遍历从数据库中查询出的所有行,也就是记录。
11.html = html.Replace("{@ClassContent}", sbTrs.ToString());,将tbody的字符串替换成sbtrslide 字符串。
实现代码:
创建一般处理程序代码如下
<%@ WebHandler Language="C#" Class="ClassHandler" %>
using System;
using System.Web;
using System.Data;//引用数据库
using System.Data.SqlClient;//连接数据库
using System.Text;//StringBuilder在里面
public class ClassHandler : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
//1.把静态页ClassList.html读取到内存里
string html = System.IO.File.