這是備份,原作請看:初探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專題實務 

[廣告] 新書上市-- ASP.NET專題實務(文魁出版)

PCHome 24小時購物也能買到,很便宜喔!

本書目錄: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

 

................................................................................................................................................................................................

ASP.NET專題實務ASP.NET專題實務(文魁出版 / P8187)

2008/八月份 天瓏書局排行榜前十名

arrow
arrow
    全站熱搜

    MIS2000 Lab 發表在 痞客邦 留言(1) 人氣()