怎样把SQL中的数据输出到HTML页面

 我们先来了解一下模板文件,Template模板,后缀名称为TPL,TPL文件和HTML文件一样,在TPL文件中注意其中的">标记,分别代表的意思如下:

  Begindetail:代表准备开始替换模板文件的开始

  Enddetail:代表结束替换模板文件

  insert_data_here:代表指明在何处插入结果集中的数据。如果结果集记录中包含多个字段的话,insert_data_here将按照其在记录中的顺序,也就是查询语句SELECT执行语句中的字段顺序,来按顺序地插入数据。也就是说,每个结果记录中的每个字段只能在页面中被插入一次。如果要想在页面中多次使用某个字段,可以先将它赋给一个变量。然后再反复地使用此变量即可。

  那我们就来做一个简单格式的TPL模板,命名为OutPutHtml.TPL,模板的HTML代码如下:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<TITLE>show HTML</TITLE>

<BODY>
<center>
<P>
<H2>
<TABLE BORDER="1" cellpadding="0" cellspacing="0">
<TR> <TH><B>公司名称</B></TH>
<TH><B>联系人</B></TH>
<TH><B>产品名称</B></TH>
<TH><B>产品名称</B></TH>
</TR>
<%begindetail%>
<TR> <TD> <%insert_data_here%> </TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
</TR>
<%enddetail%>
</TABLE>
</center> 
</H2>
</BODY>
</HTML>

  class=MsoNormal style="TEXT-INDENT: 21pt">模板文件做好后,我们先把它存放在“D:SQL Server文件”目录下面,然后我们在SQL SERVER查询分析器里面执行下面的代码:

   EXECUTEsp_makewebtask
@outputfile='D:SQLServer文件OutPutHtml.htm',
@query='SelectSuppliers.CompanyName,Suppliers.ContactName,Products.ProductName,Products.UnitPrice
FromSuppliersInnerJoinProductsOnSuppliers.SupplierID=Products.SupplierID
WhereSuppliers.SupplierID=1',
@templatefile='D:SQLServer文件OutPutHtml.TPL',
@dbname='NorthWind',
@rowcnt=0,
@whentype=9,
@lastupdated=1
GO

  我们先看sp_makewebtask这个SQL Server自带的系统存储过程,它用来创建一项生成 HTML文档的任务,该文档包含执行过的查询返回的数据。在本例中,上述的参数分别代表的意思为:

  @outputfile

  生成HTML 文件的位置。如果文档将在远程计算机上生成,则该参数可以是 UNC 名称。

  @query

 

要运行的查询。当在运行任务时,查询结果将以表格形式显示在 HTML 文档中。可以指定多个 SELECT 查询,这样可以在 outputfile 中显示多个表。

  @templatefile

  用于生成 HTML 文档的模板文件的路径。模板文件包含 HTML 文档的格式特征信息和标记 ,该标记指示将查询结果添加到 HTML 表中的位置。

  @dbname

  在其上运行查询的数据库名。

  指定查询结果是以粗体 (1) 还是非粗体 (0) 显示。bold 的数据类型为 tinyint,默认值为 0。

  @rowcnt

  指定生成的 HTML 文档中所显示行的最大值。默认值为 0,用来指定显示在 HTML 文档中满足给定查询的所有行。

  @whentype

  指定何时运行创建 HTML 文档的任务。9代表立即和应请求创建页。将立即创建和重新创建 HTML 文档。

  @lastupdated

  指定所生成的 HTML 文档是否显示“上次更新时间:”时间戳指示上次更新的日期和时间 (1) 或者没有时间戳 (0)。在 HTML 文档中,时间戳出现在查询结果的前一行。

  上面的存储过程如果在SQL Server 2005下执行,还须得开通执行它的权限,可以执行下面的代码:

   sp_configure'showadvancedoptions',1;
GO
RECONFIGURE;
GO
sp_configure'WebAssistantProcedures',1;
GO
RECONFIGURE
GO

  执行过后,我们看在D盘SQL Server文件下面生成一个OutPutHtml.htm文件,查看原代码,可以看到模板标记替换成对应的数据库的内容,代码如下:

<HTML>
<HEAD> 
<HTML>
<HEAD> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<TITLE>show HTML</TITLE>

<BODY>
<center>
<P>
<H2>
<TABLE BORDER="1" cellpadding="0" cellspacing="0">
<TR> <TH><B>公司名称</B></TH>
<TH><B>联系人</B></TH>
<TH><B>产品名称</B></TH>
<TH><B>产品名称</B></TH>
</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Chai</TD>
<TD ALIGN=RIGHT>18.0000</TD>
</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Chang</TD>
<TD ALIGN=RIGHT>19.0000</TD>

</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Aniseed Syrup</TD>
<TD ALIGN=RIGHT>10.0000</TD>
</TR>
</TABLE>
</center> 
</H2>
</BODY>
</HTML>

  运行此HTML文件,可以看到结果如图:

图 SQL SERVER查询结果输出到HTML页面  

  就和SQL语句查询的结果对应了,这样,我们就把查询语句输入到HTML页面了。

 

 

时间: 2024-10-31 01:34:44

怎样把SQL中的数据输出到HTML页面的相关文章

sql-SQL数据库中的数据输出到textbox实现换行

问题描述 SQL数据库中的数据输出到textbox实现换行 10C 由于我数据库中存储的是一条一条的类似规章制度的文本,当读取到textbox的时候如何实现换行呢?比如实现下述格式:1.2.3. 解决方案 你保存到数据库中的时候就应该自带换行. 否则就要用正则替换了. 解决方案二: 把读取出来的文本变为stringbuffer,然后对stringbuffer进行遍历,若遇到数字.这种格式就在前面加n 解决方案三: textbox要允许多行显示,数据库中存储的文本自带换行符就可以实现了. 解决方案

基于SQL中的数据查询语句汇总

以下是对SQL中的数据查询语句进行了汇总介绍,需要的朋友可以过来参考下   where条件表达式 --统计函数 复制代码 代码如下: Select count(1) from student; --like模糊查询 --统计班上姓张的人数 复制代码 代码如下: select count(*) from student where realName like '张%'; --统计班上张姓两个字的人数 复制代码 代码如下: select count(*) from student where rea

insert语句在pl/sql中替换数据可以执行,但是java中却报错

问题描述 insert语句在pl/sql中替换数据可以执行,但是java中却报错 java语句: public int initiating(String title, String content, String numberLimit,String fkCustomerId) { String pkId = "44"; String sql="insert into ACTIVITY_INFO (pk_id,title,content,fk_customer_id,num

dos-汇编语言中如何将寄存器中的数据输出打印到屏幕上

问题描述 汇编语言中如何将寄存器中的数据输出打印到屏幕上 我编写了一个汇编程序,最后将算出的结果存放到dx寄存器中了(dx=0099),我想利用DOS调用将dx中的数值打印到屏幕上作为输出,请问我该怎么做 解决方案 汇编语言屏幕打印输出函数 解决方案二: 把数据放入寄存器,调用系统中断80H 解决方案三: /* print_hex is for debugging purposes, and prints the word pointed to by ss:bp in hexadecmial.

怎样在vb.net+sql中查询数据表里某一列

问题描述 怎样在vb.net+sql中查询数据表里某一列 解决方案 解决方案二:??不明白你想问的是什么.从字面理解你是想查询某个表的一个列所有内容.SQL:select某字段from表如果是有条件查询,就在表后面加上where字句就可以了解决方案三:觉得和vb没关系,纯sql问题解决方案四:同感

将控件中的数据输出保存到本地excel或word中,同时保存图片到本地(c#)

excel|word|控件|数据 //把table控件中的数据保存到excel或word public void Save(System.Web.UI.Control source, DocumentType type) { Response.Clear(); Response.Buffer= true; //设置Http的头信息,编码格式 if (type == DocumentType.Excel) { //Excel Response.AppendHeader("Content-Dispo

visual studio向sql中写数据问题

问题描述 功能要求:sql中的表列包括:计划编号描述分类状态创建人日期等一系列列名.网页上也按照这个格式,用户手动输完之后存储下来.需要控件吗? 解决方案 解决方案二:自己来坐沙发,请大侠给点解决办法?解决方案三:这个就是批量写入数据库的代码.你看看,希望对你有用解决方案四:是向数据库插入用户的输入信息?解决方案五:最开始的数据库表可能是空的.后来的操作相当于插入信息

SSIS:两种将SQL Server数据库数据输出成XML文件的方法

在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 XML 文件输出的配置. 但是我们仍然可以通过下面这些方法来实现: 方法一:使用平面文件对字符串 XML 转换输出 方法二:使用 Script Task 将 XML 字符串输出 测试数据库 - AdventureWorks2012 测试表 - [Sales].[SalesOrderDetail] 比如说我们要将

从Sql中导出数据到Access中的问题

问题描述 INSERTINTOOPENROWSET('Microsoft.Jet.OLEDB.4.0','E:PWMSDBPWMS.mdb';'';'PWMS#82@',Election)SELECTElectionTitle,ElectionDateFROMPWMS_Election在Sql查询分析器中提示错误如下:消息7399,级别16,状态1,第1行TheOLEDBprovider"Microsoft.Jet.OLEDB.4.0"forlinkedserver"(nul