iT邦幫忙

0

如何將MSSQL查詢結果輸出到HTML?

請教大家,如何將MSSQL查詢結果輸出到HTML?並且以表格方式輸出到HTML,謝謝!

看更多先前的討論...收起先前的討論...
我想建議你
一次把你想做的事情或問題講清楚
這樣子每次問一點
實在有點浪費你自己的別人的時間

這裡提供一個不用寫程式的方式
SQL Server Reporting Service
不過我猜你也不想看就是了
badboy01 iT邦新手 5 級 ‧ 2012-12-09 14:03:56 檢舉
antijava 您好!
我回應的部分有說明了,至於提供的網站對入門新手來說還真的不太了解@@"。
準備一台IIS
把下面這段程式存成 showlist.asp 放在 IIS 的 ASP 目錄中
然後連 http://127.0.0.1/scripts/showlist.asp 即可

<hr>
<%
//====== Step 1:建立資料庫連結,然後開啟資料庫
conn = Server.CreateObject("ADODB.Connection");
conn.ConnectionString = "Driver={SQL Server};Datebase=資料庫名稱;Server=位址;UID=**;PWD=**";
conn.Open();

//====== Step 2:執行SQL指令,並將查詢結果儲存於 Recordset 中
sql = "SELECT * FROM testTable";	//從資料表 testTable 取出所有資料
rs = conn.Execute(sql);
%>

<table border=1 align=center>
<tr bgcolor="cyan">
<%
//====== Step 3:透過 RecordSet 集合取得欄位的內容
//印出欄位名稱
for (i=0; i<rs.Fields.Count; i++)
	Response.write("<th>"+rs(i).Name+"</th>\n");
%>
</tr>
<%
//印出每一筆資料
while (!rs.EOF) {
	Response.write("<tr>\n");
	for (i=0; i<rs.Fields.Count; i++)
		Response.write("<td>"+rs(i)+"&nbsp;</td>\n");
	rs.MoveNext();
}
%>
</table>

<%
//====== Step 4:關閉 RecordSet 及資料庫連結
rs.Close();
conn.Close();
%>

<hr>
只要改兩列
第5列:改成你的SQL SERVER的名稱、帳號、密碼
第9列:改成你的SQL statement
badboy01 iT邦新手 5 級 ‧ 2012-12-10 16:11:32 檢舉
感謝大大提供資料,我回去試試看~~^^
badboy01 iT邦新手 5 級 ‧ 2012-12-11 10:21:16 檢舉
大大請問一下我在執行會出現必須是陳述式結尾訊息;後來我把有;符號拿掉,可是只跑到for (i......到括弧的地方有記號停止,謝謝!
badboy01 iT邦新手 5 級 ‧ 2012-12-13 12:06:13 檢舉
經過大大提點,我用Report Service爬文找資料總算有一些效果出來,已經有表格了,只是還有一些小問題待解決,謝謝大大!
12
richardsuma
iT邦大師 3 級 ‧ 2012-12-09 22:14:57
最佳解答

badboy01提到:
我的想法是這樣,公司有一套請假系統(資料庫為MSSQL2005),但是這套系統沒有秀出今天日期哪些人是請假中狀態,所以我想用SQL語法查詢出今天請假的人(語法中會去查詢當天日期有請假的人),然後將這個查詢結果以表格顯示在一個網頁上,這樣大家可以到這各網頁看到今天有哪些人請假。

你可以反過來思考,寫一個請假狀態的MSSQL的Store Procedure,加入排程,用mail的方式寄給主管或需要的人,何必一定要上網去查詢?
甚至使用MS-Query將查詢的結果,mail給大家。
或是像 antijava 說的用 Reporting Service。

有許多種方式,不必拘泥於網頁吧?

badboy01 iT邦新手 5 級 ‧ 2012-12-10 09:41:54 檢舉

richardsuma 您好!
會希望用網頁方式是因為要和公司的入口網站結合,這樣使用者想要查詢直接就可以看,如果用Mail之類的又怕有些人會說沒看到,不知道Reporting Service要怎麼去使用也可以達到我要的效果?謝謝!

Dear badboy01:
你的 MSSQL 2005 server 需要安裝 Reporting Service,
且需要花一些effort。

為什麼不在你的EIP上直接寫一支請假狀況,或許是最簡單的方式,
也比較好管理,不然你還要架設網站,同樣要寫程式,為何不回歸到
正常的EIP系統去管理,也比較好控制權限,說不一定,不是每個人
都可以看到請假人員的狀態。

badboy01 iT邦新手 5 級 ‧ 2012-12-10 13:28:01 檢舉

richardsuma 您好!
因為EIP這個請假系統沒有提供這種功能,如果要提供這個功能必須付費升級另一個版本,礙於公司預算無法升級功能,謝謝!

12
slime
iT邦大師 1 級 ‧ 2012-12-09 01:13:29

(土法)
在 SQL 查詢結果選複製,
再到 Excel 選貼上, 然後另存檔案成網頁,
再把網頁檔案透過 ftp 丟到網站上, 並修改對應的連結.

看更多先前的回應...收起先前的回應...

也可以在 Excel 內下 SQL ^^

slime iT邦大師 1 級 ‧ 2012-12-09 04:08:58 檢舉

以個人神機妙算, 原本的問題應該是要產生動態網頁吧....

不過沒有說明網站有沒有堤供 php 或 asp , 另外的方式就是用 form get 或 post , 不過主機上還是要有對應的程式, 什麼都沒有的情況下, 就只好用土法.

badboy01 iT邦新手 5 級 ‧ 2012-12-09 10:47:59 檢舉

感謝各位回答,我是要用動態方式,我從MSSQL查詢語法查詢出結果後,放到HTML上,我的網頁就只有一頁使用簡單HTML語法可以動態放這個查詢的結果,謝謝!

fillano iT邦超人 1 級 ‧ 2012-12-09 10:57:32 檢舉

badboy01提到:
動態

才是最大關鍵問題阿,不是html。html本身沒有方法跟任何資料庫伺服器連接做查詢的。

badboy01 iT邦新手 5 級 ‧ 2012-12-09 11:01:37 檢舉
slime iT邦大師 1 級 ‧ 2012-12-09 12:28:56 檢舉

badboy01提到:
http://database.ctocio.com.cn/tips/307/8280807.shtml

我看起來是這樣:
因為你想要的是"透過輸入某個日期, 查詢資料庫中的某些資料.", 而這網站提供的是"已經有限制條件, 查詢特定資料, 只是透過 html 呈現", 所以少了"在網頁內提供輸入(或選擇)日期, 讓 SQL 語法依這日期去查詢"的功能.

所以我覺得你應該把大方向的主題先列出來, 例如: "透過輸入某個日期, 查詢資料庫中的某些資料."; 再說明已經有的工具, 例如: 網站/SQL主機有沒有 php/asp(.net)? SQL主機與網站是分開還是在一起?
再來就是技術:

  1. 如何在網頁提供輸入? 基本的是 form , input , 稍進階的再用 JavaScript 簡單過濾.
  2. 網頁輸入資料如何交給後台? 透過 php/asp(.net)?
  3. 交給後台查詢時, 如何與 SQL 連線並查詢? 要建 ODBC 嗎?
  4. 後台查詢結果如何再透過網頁呈現? 原網頁用 ajax 技術? 或另外開一個查詢結果網頁?

這些全部都拆解後, 再思考怎樣突破, 組合起來才是完整的功能, 太片段的單一問題, 網友提出一堆可能的作法, 反而會讓你的目標被分散掉, 或各小問題間組合不起來, 卻還不知道為什麼組合不起來.

fillano iT邦超人 1 級 ‧ 2012-12-09 13:22:17 檢舉

badboy01提到:
http://database.ctocio.com.cn/tips/307/8280807.shtml

這裡說的是在mssql中透過stored procedure來產生html文件,跟動態沒關係,跟網站也沒直接關係,只是檔案格式剛好是html而已。你需要先思考,使用者怎麼去接觸資料...透過網站?透過分享磁碟?然後再考慮提供怎樣的條件來取得查詢結果(日期區間?)然後考慮用哪種程式語言來實作(asp.net/php/others),最後產出的才是你要的html格式的結果。

你在mssql跟產出的html中間,還少了很多環節。

badboy01 iT邦新手 5 級 ‧ 2012-12-09 13:39:39 檢舉

slime您好!
我的想法是這樣,公司有一套請假系統(資料庫為MSSQL2005),但是這套系統沒有秀出今天日期哪些人是請假中狀態,所以我想用SQL語法查詢出今天請假的人(語法中會去查詢當天日期有請假的人),然後將這個查詢結果以表格顯示在一個網頁上,這樣大家可以到這各網頁看到今天有哪些人請假。
以下回答
1.網頁只提供使用者查看,不需輸入
2.目前查到的資料好像是要使用ASP動態網頁技術
3.後台是存放我下的查詢語法,結果顯示在前台網頁
4.只要顯示SQL查詢結果的網頁
感謝!

badboy01 iT邦新手 5 級 ‧ 2012-12-09 13:57:21 檢舉

fillano 您好!
您說(mssql跟產出的html中間,還少了很多環節),因為中間環節這部分不是很懂,可以解釋一下嗎?謝謝!

badboy01 iT邦新手 5 級 ‧ 2012-12-09 13:57:21 檢舉

fillano 您好!
您說(mssql跟產出的html中間,還少了很多環節),因為中間環節這部分不是很懂,可以解釋一下嗎?謝謝!

12
andylau
iT邦新手 3 級 ‧ 2012-12-10 09:51:39

大家都點到了重點: 有沒有動態網頁的技術(ASP.NET/PHP 等等)
如果你知道上述這些東西, 你的問題應該是很簡單的
若沒有,
我可以想到的方式

  1. SQL 可以直接輸出XML, 你再搭配 XSLT, 也許可行
  2. 用Script 方式從資料庫抓資料出來, 然後產生HTML (但這樣跟ASP/ASP.Net等 是差不多意思, XD)
badboy01 iT邦新手 5 級 ‧ 2012-12-10 13:30:43 檢舉

您好!
目前正在努力研讀ASP該怎麼去做,雖然會的人會覺得很簡單,可是萬事起頭難阿,我還是需要有範本才知道該怎麼做下去。謝謝!

基礎先打~~!
像俺是PHP的~~!
也是從 echo "HI!泰大!";
練起的來的~~!
後面就是一些函數 邏輯 流程設計~~!
買本書跟著書去做 裡面因該都有附範例可以參考~~!

4
summertw
iT邦好手 1 級 ‧ 2012-12-14 09:22:58

題目是SQL Server查詢結果直接輸出XML
請直接使用下列指令..

SELECT Column-List...
FROM YourTableName
FOR XML AUTO, TYPE

這樣會直接輸出XML的格式的資料..
但是前題你必須再輸出一個叫XSD資料格式平台這樣才會塔配使用

badboy01 iT邦新手 5 級 ‧ 2012-12-17 09:10:11 檢舉

謝謝回答~

我要發表回答

立即登入回答