应用ASP.Net在web中查询数据库

来源:互联网 发布:mac下载软件推荐 编辑:程序博客网 时间:2024/05/17 06:06

将数据库中的数据查询出来,并打印在html页面上

  1. 首先创建一个website,在web.config文件中写上连接字符串<connectionStrings>
        <add name="constr" connectionString="Data Source=Graph;Initial Catalog=化学类一班;Integrated Security=True;"/></connectionStrings>   -----身份验证方式用的是windows身份验证,name属性是不可或缺的
  2. 新建一个html页面和一个一般处理程序,由于本次是将数据库中的数据一行一行打印在html上,肯定要用到循环,可以在html页面上写一个$tbody当做占位符
  3. 在一般处理程序中,首先要拿到web.config里面的连接字符串并建立数据库连接string constring = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using(SqlConnection conn=new SqlConnection(constring)){}  //用using可以自动释放不在需要的对象的内存
  4. 然后建立SqlDataAdapter对象using (SqlDataAdapter adapter=new SqlDataAdapter ("select *from 学生登记表",conn)){} 因为SqlDataAdapter存在重载,可以将SQL语句当做参数写进去。
  5. 建立DataTable对象,DataTable的对象是一个虚拟表格,将从数据库中拿到的数据放在DataTable对象中DataTable da = new DataTable();
  6. 建立StringBuilder对象,他有一个AppendFormat方法可以比较方便在<td></td>中插入数据StringBuilder sb = new StringBuilder();
  7. 循环遍历 for (int i = 0; i < da.Rows.Count; i++) sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>", da.Rows[i]["autoId"], da.Rows[i]["学号"], da.Rows[i]["姓名"]);}将对象da里面的每一行数据的分别拿到,用da.Rows[i]["列名"]可以拿到,然后放在td标签里面
  8. 最后要建立一般处理程序和html页面的连接string filePath = context.Request.MapPath("index.html");
                    string fileContent = File.ReadAllText(filePath);
                  fileContent=  fileContent.Replace("$tbody", sb.ToString());//替换html页面中的$tbody占位符
                    context.Response.Write(fileContent);//打印
  9. 下面是源码:一班处理程序 indexList.ashx
    <%@ WebHandler Language="C#" Class="indexList" %>using System;using System.Web;using System.IO;using System.Data;using System.Data.SqlClient;using System.Text;public class indexList : IHttpHandler {        public void ProcessRequest (HttpContext context) {        context.Response.ContentType = "text/html";        //context.Response.Write("Hello World");        string constring = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;        using (SqlConnection conn=new SqlConnection(constring))        {            using (SqlDataAdapter adapter=new SqlDataAdapter ("select *from 学生登记表",conn))            {                DataTable da = new DataTable();                adapter.Fill(da);                StringBuilder sb = new StringBuilder();                for (int i = 0; i < da.Rows.Count; i++)                {                    sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>", da.Rows[i]["autoId"], da.Rows[i]["学号"], da.Rows[i]["姓名"]);                }                string filePath = context.Request.MapPath("index.html");                string fileContent = File.ReadAllText(filePath);//这是一般处理程序对html页面的读取              fileContent=  fileContent.Replace("$tbody", sb.ToString());                context.Response.Write(fileContent);            }        }            }     public bool IsReusable {        get {            return false;        }    }}
  10. web.config
    <?xml version="1.0" encoding="utf-8"?><!--  有关如何配置 ASP.NET 应用程序的详细信息,请访问  http://go.microsoft.com/fwlink/?LinkId=169433  --><configuration>    <system.web>      <compilation debug="true" targetFramework="4.5" />      <httpRuntime targetFramework="4.5" />    </system.web>  <connectionStrings>    <add name="constr" connectionString="Data Source=Graph;Initial Catalog=化学类一班;Integrated Security=True;"/>  </connectionStrings></configuration>
  11. index.html
    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title></title></head><body><a href="#">111000</a>    <table>        <tr>        <th>序号</th><th>学号</th><th>姓名</th>        </tr>        $tbody      </table></body></html>

0 0