這四大步驟是我自己歸納的流程,不但對於 ASP、ASP.NET有用,轉型成PHP與JSP也是道理相同。如同武功高手打通任督二脈後,學什麼武功都快。只要瞭解這四大流程,我相信大部分需要連結資料庫的程式,都難不倒大家。
以下是我的新書內容,僅供參考:
ASP.NET 專題實務(I)(松崗出版),本書有VB、C#兩種版本!
===========================================================
這四大步驟是我自己歸納的流程,不但對於 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 ,
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 4.0 專題實務(松崗出版),本書有VB、C#兩種版本!
本系列 ADO.NET 共有下面文章:
- 初探ADO.NET #1,程式與資料庫互動的四大步驟
- 初探ADO.NET #2,DataReader 與 DataSet(資料集)
- ADO.NET #3 (GridView + SqlDataSource)完全手寫、VB 後置程式碼! (難度很高,初學者請略過)
- 同上,[C#版的範例]
- ADO.NET #4(改),自己設定輸入畫面,讓SqlDataSource幫我們完成「新增」一筆資料
- ADO.NET #5,自己設定畫面,讓SqlDataSource幫我們撈(呈現)資料
- [習題]ADO.NET #6, DataSet如何新增一筆資料?
- [習題]ADO.NET #7,避免相同資料 重複輸入(重複新增)
- [習題]ADO.NET #8,文章(產品)的瀏覽次數 / 點閱數 / 點擊次數,怎麼作?
- ADO.NET #9 FormView + SqlDataSource完全手寫、後置程式碼!
- ADO.NET #10 DetailsView 變更模式(完全手寫、後置程式碼!)
- ADO.NET #11 自己控制SqlDataSource的例外狀況
- ......文章 仍在增加中......
範例:
今日值班正妹,吉澤明步(日本 成人愛情動作悲喜劇 的 專業女優)
圖片來源:http://www.nutopia.uni.cc/~wkso/forum/viewtopic.php?t=19578&girl=photo&&simp=1
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。