您的位置:首页 > 编程语言 > ASP

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

2017-03-07 19:31 288 查看
将数据库中的数据查询出来,并打印在html页面上

首先创建一个website,在web.config文件中写上连接字符串<connectionStrings>

    <add name="constr" connectionString="Data Source=Graph;Initial Catalog=化学类一班;Integrated Security=True;"/></connectionStrings>   -----身份验证方式用的是windows身份验证,name属性是不可或缺的
新建一个html页面和一个一般处理程序,由于本次是将数据库中的数据一行一行打印在html上,肯定要用到循环,可以在html页面上写一个$tbody当做占位符
在一般处理程序中,首先要拿到web.config里面的连接字符串并建立数据库连接string constring = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;using(SqlConnection conn=new SqlConnection(constring)){}  //用using可以自动释放不在需要的对象的内存
然后建立SqlDataAdapter对象using (SqlDataAdapter adapter=new SqlDataAdapter ("select *from 学生登记表",conn)){} 因为SqlDataAdapter存在重载,可以将SQL语句当做参数写进去。
建立DataTable对象,DataTable的对象是一个虚拟表格,将从数据库中拿到的数据放在DataTable对象中DataTable da = new DataTable();
建立StringBuilder对象,他有一个AppendFormat方法可以比较方便在<td></td>中插入数据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]["姓名"]);}将对象da里面的每一行数据的分别拿到,用da.Rows[i]["列名"]可以拿到,然后放在td标签里面
最后要建立一般处理程序和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);//打印
下面是源码:一班处理程序 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;
}
}

}

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>

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net
相关文章推荐