2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 简单的动态网页(表格)——将SQL Server的数据读入表格中

简单的动态网页(表格)——将SQL Server的数据读入表格中

时间:2023-01-30 11:43:10

相关推荐

简单的动态网页(表格)——将SQL Server的数据读入表格中

实现步骤:

1.把静态网页读到内存中2.把班级信息从数据库中读出来(运用)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.ReadAllText(context.Request.MapPath("ClassList.html"));//2.把班级的信息从数据库读取出来string connStr = "server=.;database=StudentMIS;integrated security=true";//连接数据库的字符串//如果integrated security=true表示可以在不知道数据库用户名和密码的情况下时,依然可以连接数据库//Server= 后边的那个“.”就是本地服务器,相当于localhost,DataTable dt = new DataTable(); //创建一个虚拟表using (SqlConnection connection=new SqlConnection(connStr)) //SqlConnectionv创建连接{string sql = "select id,cName,teacher,remake from Classes";using (SqlCommand cmd= new SqlCommand(sql, connection)) //创建SqlCommand对象,SqlCommand对象可以在数据库上做增删改查{SqlDataAdapter sda = new SqlDataAdapter(cmd);sda.Fill(dt);}}//3.把Datatable里的数据,拼写成由html标记包裹住的字符串StringBuilder sbTrs = new StringBuilder(); //StringBuilder 用来处理字符串foreach(DataRow row in dt.Rows){sbTrs.Append("<tr>");sbTrs.Append("<td>" + row["id"].ToString() + "</td>");sbTrs.Append("<td>" + row["cName"].ToString() + "</td>");sbTrs.Append("<td>" + row["teacher"].ToString() + "</td>");sbTrs.Append("<td>" + row["remake"].ToString() + "</td>");sbTrs.Append("</tr>");}//4.把生成字符串,嵌入到静态页的tbody标签里html = html.Replace("{@ClassContent}", sbTrs.ToString());//5.把拼写完整的html页面内容输出到客户端context.Response.Write(html);}//web走的是相对路径,windows走的是绝对路径//context.Requset.MapPath("ClassList.html");可以映射出ClassList.html的绝对路径public bool IsReusable{get{return false;}}}

创建一个网页模板

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>班级信息页</title><link href="css/TaableCss.css" rel="stylesheet" /></head><body><table><caption>安阳师范学院软件学院班级信息列表</caption><thead><tr><th>班级编号</th><th>班级名称</th><th>班主任</th><th>班级口号</th></thead><tbody>{@ClassContent}</tbody></table></body></html>

css放在一个单独的文件夹下

table {width: 1000px;border: 1px solid #336699;padding: 0;margin: 0 auto;border-collapse: collapse;}table caption{font-size:26px;font-family:"黑体";color:#336699;}table th,table td{border:1px solid #336699;font-size:18px;text-align:center;padding:10px;color:#333;}table th{background-color:#d636a0;}

数据库名为StudentMIS,其中有id,cName,remake,teacher,

结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。