http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4918.aspx
以下是我的新书内容,仅供参考:新书上市-- ASP.NET案例精编 / 清华大学出版社
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
===========================================================
这四大步骤是我自己归纳的流程,不但对于 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案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
ADO.NET 共有下面文章:
- 初探ADO.NET #1,程序与数据库互动的四大步骤 (2010-10-20 08:55)
- 初探ADO.NET #2,DataReader 与 DataSet(资料集) (2010-10-20 08:58)
- ADO.NET #3 (GridView + SqlDataSource)完全手写、后置程序代码,兼论 SqlDataSource与UpdateParameter/DeleteParameter的用法 (2010-10-22 10:04)(难度很高,初学者请略过)
- ADO.NET #4,自己设定输入画面,让SqlDataSource帮我们完成「新增」一笔数据 (2010-10-22 13:55)
- ADO.NET #5,自己设定画面,让SqlDataSource帮我们捞(呈现)数据 (2010-10-22 14:08)
- [习题]ADO.NET #6, DataSet如何新增一笔数据?
- [习题]ADO.NET #7,避免相同数据 重复输入(重复新增)
- [习题]ADO.NET #8,文章(产品)的浏览次数 / 点阅数 / 点击次数,怎么作?
- ......文章 仍在增加中......
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
![ASP.NET案例精编--适用于VS2005/2008](http://images.china-pub.com/ebook45001-50000/46063/zcover.jpg)