初探ADO.NET #1,程序与数据库互动的四大步骤

初探ADO.NET #1,程序与数据库互动的四大步骤

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.NET案例精编--适用于VS2005/2008

   

===========================================================

这四大步骤是我自己归纳的流程,不但对于 ASP、ASP.NET有用,转型成PHP与JSP也是道理相同。如同武功高手打通任督二脉后,学什么武功都快。只要了解这四大流程,我相信大部分需要连结数据库的程序,都难不倒大家。

 

第一, 连接数据库(Connection)。
第二, 执行SQL指令(又分成两大类:取出数据、或是写入数据)。
第三, 自由发挥(通常这一段是画面或流程的设计)。
第四, 关闭资源(如:关闭数据库的连接)。


接下来将会看几段程序代码,各位读者不需死记,只要稍微了解一下,简单看过即可。后续的文章会有更深入的解说。

 

6-1-1  ASP.NETADO.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  JSPPHP也可用四大步骤


上 面的程序,是最简单的一支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(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

 

 

ADO.NET 共有下面文章:

转载于:https://www.cnblogs.com/mis2000lab/archive/2010/10/20/2008_08_15_4918_ADO_Net_1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值