這是備份,原作請看:初探ADO.NET #1,程式與資料庫互動的四大步驟
http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4918.aspx
以下是我的新書內容,僅供參考:新書上市-- ASP.NET專題實務(文魁出版)
===========================================================
這四大步驟是我自己歸納的流程,不但對於 ASP、ASP.NET有用,轉型成PHP與JSP也是道理相同。如同武功高手打通任督二脈後,學什麼武功都快。只要瞭解這四大流程,我相信大部分需要連結資料庫的程式,都難不倒大家。
第一, 連接資料庫(Connection)。
第二, 執行SQL指令(又分成兩大類:取出資料、或是寫入資料)。
第三, 自由發揮(通常這一段是畫面或流程的設計)。
第四, 關閉資源(如:關閉資料庫的連接)。
接下來將會看幾段程式碼,各位讀者不需死記,只要稍微瞭解一下,簡單看過即可。後續的文章會有更深入的解說。
6-1-1 ASP.NET與ADO.NET的簡單程式
ASP.NET從資料庫取出所有資料,程式如下(檔名 test_123.aspx):
<%@ Page Language="vb" %> <%@ Import NameSpace = "System.Data" %> <%@ Import NameSpace = "System.Data.SQLClient" %>
<% '--註解:第一,連結SQL資料庫 Dim Conn As SQLConnection = New SQLConnection("server=localhost; uid=test; pwd=test; database=test") Conn.Open()
'--註解:第二,執行SQL指令,使用DataReader Dim sqlstr As String = "select * from test" Dim cmd As SQLCommand = New SQLCommand(sqlstr ,Conn) Dim dr As SQLDataReader = cmd.ExecuteReader()
'--註解:第三,自由發揮 While dr.Read() Response.Write("文章編號:" & dr.Item("id") & “<br>”) Response.Write("日 期:" & dr.Item("test_time") & “<br>”) Response.Write("文章標題:" & dr.Item("title")) Response.Write("<hr>") End While
'--註解:第四,關閉資源 cmd.Cancel() dr.Close
Conn.Close Conn.Dispose() %> |
上面的程式是把HTML和程式碼,混合寫在同一個檔案內,這種作法稱為Inline Code,是傳統ASP、PHP常用的方式。如果採用VS 2005/2008來寫程式,則會把「HTML畫面」與「程式碼」各自獨立,分屬兩個不同的檔案。
6-1-2 JSP、PHP也可用四大步驟
上面的程式,是最簡單的一支ASP.NET程式了,包含了ADO.NET的技術可以連結資料庫,並且執行SQL指令(Select * From test)取出資料。以下我們用JSP撰寫相同功能的網頁程式,讀者會發現:原來如此,不管是JSP或ASP.NET都一樣,不就是那四大步驟而已。
<%@page contentType="text/html;charset=Big5" import="java.sql.*" %>
<% //註解:第一,連結資料庫。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //透過ODBC連結MS SQL Server 2000,驅動程式管理員java.sql.DriverManager Connection 變數 = DriverManager.getConnection("jdbc:odbc:ODBC的名稱","帳號","密碼");
//註解:第二,執行SQL指令。執行SELECT指令,將資料放入記錄集(rs) Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from test");
//註解:第三,自由發揮 while( rs.next() ) //利用while迴圈,將所有資料呈現在畫面上。 { String my_id = rs.getString("id"); Date my_time = rs.getDate("test_time"); String my_title = rs.getString("title");
out.println(my_time + " " + my_title); }
//註解:第四,關閉資源 rs.close(); stmt.close(); conn.close(); %> |
以下是 PHP 4.x版的範例:
<?php //註解:第一,連結資料庫。 $link = mssql_connect("localhost", "test", "test"); mssql_select_db("test", $link);
//註解:第二,執行SQL指令。 $SQL = "Select id,test_time,title from test"; $RS = mssql_query($SQL, $link);
//註解:第三,自由發揮 if (!$RS) { echo "抱歉!資料庫沒有資料!"; } else {
while( list($id,$test_time,$title) = mssql_fetch_row($RS) ) { echo "$test_time"; echo "$title"; } }
//註解:第四,關閉資源 mssql_free_result($RS); mssql_close ($link); ?> |
以上三個程式都是相同的功能,就連撰寫的流程也大同小異。可見我一開始說的「連結資料庫的四大步驟」所言不虛。只要熟記這四大步驟,大部分的網頁程式設計都可以快速地轉換。
以我為例,我學習JSP只花了一天半的時間,用一天看書,另外半天是把我的程式改寫成JSP版本。而PHP也一樣,除了安裝PHP運作的環境(Apache Web Server搭配PHP)花了比較多時間之外,寫PHP程式對我來說幾乎沒有難度。
有了上面幾支程式的佐證,我們可以更深入瞭解四大步驟做了哪些事:
第一, 連接資料庫。
要連接各種資料庫,只要會撰寫連接字串(Connection String)即可。例如:"server=資料庫主機; uid=帳號; pwd=密碼; database=資料庫名稱" 。
第二, 執行SQL指令。
1. SQL指令又分成兩種,一種是「Select」陳述句,用來撈(取出)資料。
2. 另外一種是資料的更動,例如「Insert、Update、Delete」陳述句,執行這類的陳述句將不會將大批資料傳回,頂多只有傳回一個數值,提醒我們這個陳述句更動了幾列資料而已。
第三, 自由發揮。
1. 如果是執行「Select」陳述句,把許多筆記錄從資料庫裡面撈出來,這時候就要呈現在畫面上。可能會用HTML碼作一些修飾,讓畫面比較整齊好看。
2. 如果是「Insert、Update、Delete」陳述句的話,只會傳回一個數值,提醒我們這個陳述句更動了幾列資料而已,告訴使用者這段動作是否成功完成。
第四, 關閉資料庫的連接與釋放資源。
俗諺有云:「有借有還,再借不難」。相同的道理,我們寫程式的時候,曾經使用過或開啟的資源,在程式的最後都要一一的關閉它。這樣才不會把系統資源消耗殆盡,被一支爛程式拖累整個系統。
以下是廣告文----
我的書上市了,煩請賞光、支持一下。 感恩~
題名: | ASP.NET專題實務 本書目錄:http://www.kingsinfo.com.tw/item_detail.asp?pro_id=7085 | ||
ISBN: | 978-986-204-238-0 | 著者: | 周棟祥博士, 吳進魯 MIS2000 Lab. 編著 審稿教授:南台科大 吳盛博士 |
出版者: | 文魁資訊 http://www.kingsinfo.com.tw | 出版時間: | 2008.07 |
今日值班正妹,吉澤明步(日本 成人愛情動作悲喜劇 的 專業女優)
圖片來源:http://www.nutopia.uni.cc/~wkso/forum/viewtopic.php?t=19578&girl=photo&&simp=1
................................................................................................................................................................................................
留言列表