[轉帖]1小時asp入門,非常簡單

1小時ASP入門,非常簡單。

<%
   語句
   ……
%>

<2>定義變量dim語句

<%
  dim a,b
  a=10
  b=」ok!」
%>

注意:定義的變量可以是數值型,也可以是字符或者其他類型的
<3>簡單的控制流程語句
1.

If 條件1 then
     語句1
elseif 條件2 then
     語句2
else
     語句3
endif

2.

while 條件
   語句 
  wend

3.

for count=1 to n step m
  語句1
  exit for
  語句2
next 

二.ASP數據庫簡單*作教程
<1>.數據庫連接(用來單獨編製連接文件conn.asp)

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bbs\db1\user.mdb") 
%>

(用來連接bbs\db1\目錄下的user.mdb數據庫)
<2>顯示數據庫記錄
原理:將數據庫中的記錄一一顯示到客戶端瀏覽器,依次讀出數據庫中的每一條記錄
如果是從頭到尾:用循環並判斷指針是否到末 使用: not rs.eof
如果是從尾到頭:用循環並判斷指針是否到開始 使用:not rs.bof

            (包含conn.asp用來打開bbs\db1\目錄下的user.mdb數據庫)
        < %
         set rs=server.CreateObject("adodb.recordset")  (建立recordset對像)
         sqlstr="select * from message"  ---->(message為數據庫中的一個數據表,即你要顯示的數據所存放的數據表)
         rs.open sqlstr,conn,1,3         ---->(表示打開數據庫的方式)
         rs.movefirst                    ---->(將指針移到第一條記錄)
         while not rs.eof                ---->(判斷指針是否到末尾)
         response.write(rs("name"))      ---->(顯示數據表message中的name字段)
         rs.movenext                     ---->(將指針移動到下一條記錄)
         wend                            ---->(循環結束)
------------------------------------------------------         
         rs.close
         conn.close                    這幾句是用來關閉數據庫
         set rs=nothing
         set conn=nothing
-------------------------------------------------------
        %>

其中response對象是服務器向客戶端瀏覽器發送的信息
<3>增加數據庫記錄
增加數據庫記錄用到rs.addnew,rs.update兩個函數

  
            (包含conn.asp用來打開bbs\db1\目錄下的user.mdb數據庫)
        < %
         set rs=server.CreateObject("adodb.recordset")  (建立recordset對像)
         sqlstr="select * from message"  ---->(message為數據庫中的一個數據表,即你要顯示的數據所存放的數據表)
         rs.open sqlstr,conn,1,3         ---->(表示打開數據庫的方式)
         rs.addnew                      新增加一條記錄
         rs("name")="xx"                將xx的值傳給name字段
         rs.update                      刷新數據庫 
------------------------------------------------------         
         rs.close
         conn.close                    這幾句是用來關閉數據庫
         set rs=nothing
         set conn=nothing
-------------------------------------------------------          
                    
        %>

<4>刪除一條記錄
刪除數據庫記錄主要用到rs.delete,rs.update

       (包含conn.asp用來打開bbs\db1\目錄下的user.mdb數據庫)
        < %
         dim name
         name="xx"
         set rs=server.CreateObject("adodb.recordset")  (建立recordset對像)
         sqlstr="select * from message"  ---->(message為數據庫中的一個數據表,即你要顯示的數據所存放的數據表)
         rs.open sqlstr,conn,1,3         ---->(表示打開數據庫的方式)
-------------------------------------------------------       
         while not rs.eof
          if rs.("name")=name then
           rs.delete
           rs.update             查詢數據表中的name字段的值是否等於變量name的值"xx",如果符合就執行刪除,
          else                   否則繼續查詢,直到指針到末尾為止
           rs.movenext
          emd if
         wend
------------------------------------------------------
------------------------------------------------------         
         rs.close
         conn.close                    這幾句是用來關閉數據庫
         set rs=nothing
         set conn=nothing
------------------------------------------------------- 
        %>

<5>關於數據庫的查詢
(a) 查詢字段為字符型

      < %
      dim user,pass,qq,mail,message
      user=request.Form("user")
      pass=request.Form("pass")
      qq=request.Form("qq")
      mail=request.Form("mail")
      message=request.Form("message")
      if trim(user)&"x"="x" or trim(pass)&"x"="x" then     (檢測user值和pass值是否為空,可以檢測到空格)
        response.write("註冊信息不能為空")
      else
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from user where user='"&user&"'"    (查詢user數據表中的user字段其中user字段為字符型)
      rs.open sqlstr,conn,1,3
      if  rs.eof then
        rs.addnew
        rs("user")=user
        rs("pass")=pass
        rs("qq")=qq
        rs("mail")=mail
        rs("message")=message
        rs.update
        rs.close
        conn.close
        set rs=nothing
        set conn=nothing
        response.write("註冊成功")
       end if 
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("註冊重名")
     %>

(b)查詢字段為數字型

     < %
      dim num
      num=request.Form("num")
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from message where id="&num   (查詢message數據表中id字段的值是否與num相等,其中id為數字型)
      rs.open sqlstr,conn,1,3
      if not rs.eof then
      rs.delete
      rs.update
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("刪除成功")
      end if
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("刪除失敗")
     %>

<6>幾個簡單的asp對象的講解
response對像:服務器端向客戶端發送的信息對像,包括直接發送信息給瀏覽器,重新定向URL,或設置cookie值
request對像:客戶端向服務器提出的請求
session對像:作為一個全局變量,在整個站點都生效
server對像:提供對服務器上方法和屬性的訪問
(a) response對象的一般使用方法
比如:

       < %
        resposne.write("hello, welcome to asp!")
       %>
    在客戶端瀏覽器就會看到  hello, welcome to asp! 這一段文字
      < %
response.Redirect("www.sohu.com")
      %>

如果執行這一段,則瀏覽器就會自動連接到 「搜狐」 的網址
關於response對象的用法還有很多,大家可以研究研究
request對象的一般使用方法
比如客戶端向服務器提出的請求就是通過request對像來傳遞的
列如 :你在申請郵箱的所填寫的個人信息就是通過該對像來將
你所填寫的信息傳遞給服務器的
比如:這是一段表單的代碼,這是提供給客戶填寫信息的,填寫完了按
「提交」傳遞給request.asp文件處理後再存入服務器數據庫

    

那麼request.asp該如何將其中的信息讀入,在寫入數據庫,在這裡就要用到
request對象了,下面我們就來分析request.asp的寫法

< %
dim name,password    (定義user和password兩個變量)
name=request.form(「user」)  (將表單中的user信息傳給變量name)
password=request.form(「pass」) (將表單中的pass信息傳給變量password)
%> 

通過以上的幾句代碼我們就將表單中的數據讀進來了,接下來我們要做的就是將
信息寫入數據庫了,寫入數據庫的方法上面都介紹了,這裡就不一一複述了。
(通過上面的學習大家完全可以自己做一個留言版了)

NET的user control

今天上課上到有關user control,

它類似asp時的include,但功能更加強大,

可以把UI介面整個帶入,

加上動態載入user control,

就能用這來寫權限判斷了

不同的登入者,可看到不同的user control,

解決了我之前只會用

Button1.Enabled = True或Button1.Enabled = False的爛方法

還是只有寫程式(二)

我這個程式設定師呀!!最近也快受不了現在的工作了,

原因無他,不外就是壓力,

我個人認為我是抗壓力還不錯的人,

因為我的原則是工作歸工作,休息歸休息,

不過呀!!最近的工作,讓我的私人時間大大的減少,

沒時間進修,連上敗家網的時間都沒了,

絕大部分的時間都花在加班上,

加班做些什麼呢?也跟平常上班一樣,是在改程式,

只是這個程式目前已在運作,有時程上的壓力,

也就是說,很趕啦!

但,我程式改寫完後,並不是說就沒事做了喔!!

我還要陪承辦人對資料是否正確,

因承辦人的業務很多,不僅只有這個系統,

所以導致他們也要加班,而我呢,也就陪著對了,

順便改寫程式的邏輯,

由於很多承辦人都有類似的情況,

所以我就要一一陪他們下海,

嗯,這樣說也不對,應該算是友情支援吧!!

我在想,

假使此系統還要運作下去的話,改好一點,

才不會讓後來改的和用的人都那麼辛苦(因為我是好人),

天知道新系統是不是會做的成功,

大麻煩一個,

因為我現在面對的(應付的),

又多了做新系統的人,

我現在真的需要一對多了,

自幹萬歲!!

老實說,這套系統做的相當沒頭沒尾,

所以很多地方都沒考慮到,

改是一定要的,可能是沒什麼經驗,所以改起來困難重重,

難改到爆,真的很想去頭去尾,只留骨頭

還是只有寫程式(一)

最近在msn上遇到很多朋友想找新工作,或是想學寫程式

因此由感而發地寫了這一篇,

我對史學系來說應是個異類,怎麼文學院的人會跑來寫程式呢?

這是每個老闆面試時對我的第一個疑問?

~我真的很想回答,因為老子強!!

想當初剛當完兵,我也不知我能做什麼工作,翻遍報紙,

文學院出來的,真的沒什麼工作好找,

去報社寫文章,新聞系的人占滿了,而且我文筆不好,不考慮.

再來想去出版業工作,但無外不是助理等的工作,加上又沒什麼錢景,也是不考慮.

又想去書店找找,當個店員,家人認為學不到什麼東西.

東找找,西找找,就是找不到合適的,

因為不知做什麼好,

在親友的介紹下我連保險業務員的証照都去考了,

但你想,我適合當sales嗎?我的口材又不好,

講冷笑話或凸人家時,講的超順,但要談正經事時,就容易結巴,

當時家人建議我找有未來性的工作,

什麼叫做有未來性的工作??

恰好有一位同梯的朋友介紹我去一家網路公司做做看,

想想我也有興趣,加上大學有用HTML寫過網頁,就硬著頭上了,

那時什麼程式語言都還搞不太清楚,就這樣去面試,

面試呀!!講專業,很容易漏底,超緊張的,

那時我就靠著一句,「我有寫過web平台的介面,而且我肯學習」,

不敢相信,我這樣就被任用了,

不過由於我不是本科系,所以起薪硬是比一般本科系生少了4000,

沒關係,能學到東西就好,而這就是我出社會的第一份工作

#####################################################

那時公司主要是用asp來寫,嗯!!有程度的說法,叫做用asp來開發,

於是asp成為html和簡單的javascript之外,另一個新學的語言,

現在想想,我第一本買asp的書,是王國榮寫的,

也不能說寫的爛,只能說真的寫的讓我看不太懂,

可能是我買錯書了吧!!不知為什麼別人都說他寫的好,

還記得,公司的同事有一次說他跟朋友借那本來看看,

一個下午就看完了,真強!!

而那一段時間真是渡日如年,由於我跟同事不熟,

有問題也不太敢問他們,只有自己悶著頭做,

到最後終於他們看不過去了,也指引了我一些學習的方向

再次感謝他們二位…..

我那時的學習的方法是:

看不懂他們寫的就自己買書來查,不然就上網查.

(ps.這是自學很好的方法,不過要有心就是了!!)

記得我那時最常上的,就屬藍色小鋪了

真感謝這個網站!!

也因此,我學到了獨立解決問題的能力,

這個是上課時老師絕對沒有教的.

待續~~~~~

[轉貼]你搞懂抽象類別別與界面了嗎?(一)

什麼是CLASS?什麼是INTERFACE?
以下有清楚的解釋

所謂 interface 就是契約,只要你符合契約的 Class 就可以抽用,互換.你不用去管理面的實做,比如說你買了 Atx 的 Case,所以你能裝 Atx 的機板,管你是 Ause, Gigabody, MSI 都可以裝,雖然裡面的Layout 不一樣,或者是空白機板都可以裝.
而Abstract Class ,又稱部份實做,你要做一個符合 Interface 的 Class, 如果裡面有100種零件,而你要做100商品,一種方式是做 100商品,而每個商品在做 100個零件,另外一種方式是,你發現這100種商品,而這100商品中有80%是類似的,也就是80零件一樣,你就不用那麼麻煩一個一個作,你做一個完成8成的Class,因為還沒完全完成所以稱Abstract Class,隨後在既成這一個class,句續完成後面20%,單然如果你要做101商品,它不像其他的有80%相似度,你就要實作interface, 而不能繼承是80%類別在Override 不要的,所以Abstract Class也有繼承關係,一個實做interface 20%,繼承20%,完成至40%…,以後要做一個你要用的Class,找一個最接近你要的,再補兩三行Code 就可完成像百萬工程的功能了

[轉貼]給學生與軟體業新進的十招

第一招:看到問題唸十次
 a. 確認你記得問題下次還記得
 b. 確認你瞭解問題,沒有漏掉什麼要求
 c. 確認你以後踫到類似問題,還會想到它
 d. 確認你連做夢都會想到它~悲慘的程式設計師宿命~
第二招:程式不會寫,先開始寫註解
 a. 例用註解將問題描述,將問題做分析
 b. 把分析方法與解法都 document 起來~對你自己最有益處
 c. 直接註解而省略白紙,由註解行數的改變,讓你老闆知道你有在努力做~
 c. 人家是用照片寫記憶~程式設計師是用文件寫記憶~
第三招:解法不會寫,先寫工具
 a. 一個複雜的問題,尤其是面對演算法相關的所謂困難部份,如果能把工具(諸如模擬)
  寫出來,這樣是比較容易找出解法的~
 b. 工具總是可以拿來重覆利用的~這會讓你越寫越輕鬆~
 c. 寫工具也是一種重要練習~
第四招:整個問題不會解,先解會解的
 a. divide and conquer(偶稱它為個個擊破法) 不用多說,不知道網上查也會知道~
 b. 就像寫論文一樣,如果無法提出所有問題的統一解決方法,限定一些條件來解
 c. 還有有時候一下就想最困難的問題,一來浪費進度、二來心情不佳、三來老闆可能把
   預算砍了因為沒有結果~所以先解會解的是經驗上的金玉良言~因為一來你花了
   20%完成了80%超越進度,老闆來拍肩膀了,二來你解了簡單問題心情大好,更
   覺得整個問題也沒什麼大不了,說不定困難問題因心情好(沒有專牛角尖)也就想
   到而解決了,三來老闆看你有成果說不定常拍你肩膀哩~(老闆這時候真好騙~可惜
   薪水不好騙)
第五招:查網路、問別人、看書獲取各種解題的資源
 a. 想想偶們還在用193x的理論,當然問題絕不可能只有你才踫到,一定粉多人早就
   見過了~只有你踫到的通常是你自己寫出來的bug~
 b. 這是群策群力的時代,多找資源、人家的經驗和別人幫忙~
 c. 對應於b, 現在這個社會最忌諱單打獨鬥, 那代表你不能 team work~
 d. 增加知名度、人緣~ Social 粉重要~切記~切記~
 第六招:暴力法求解再找最佳化
 a. 先求有再求好~
 b. 有成果人家才看得見~不然做不出來,中間再怎麼完美都沒有用~
 c. 暴力法通常是最白痴也最有效的辦法~
 d. 有時白痴解法最好~因為只有呆子在演東西給傻子和電腦看~你還期待有什麼
   人會看你的程式?偶們高貴的使用者嗎?
 e. 一代萎人瞪小平同志說過:「黑猫、白猫 會抓老鼠的就是好喵」
第七招:多印追蹤資料少偵錯
 a. 講得粉白話~就是要你可以節省出問題找錯的時間~這樣才有更多時間解決真正
   是問題的問題
 b. 因為有追蹤資料 (trace information)不僅你可以找問題,別人也才可以幫你找
   出問題,想想吧~如果 compiler 只告訴你程式錯,而沒告訴你大約是哪裡它踫
   到錯~你要花多少時間解決一個打錯字的問題
 c. 真正的問題也常能由追蹤資料找出蜘絲馬跡
 d. 養成習慣,不要等到當了還在想怎麼寫追蹤資料的程式碼或可以重覆發生的方法~
 e. 你是壞人喲~幹嘛壞怕留下線索~還是你是蜘蛛精,「偶揮揮手不帶走一片data而
   當機」所以,人家是照相機抓得住偶,程式設計師是用 bug 抓往住偶~偶不是故
   意幫那家快倒的、沒有「即時更新技術」的公司打廣告~
第八招:多讀、多寫、多想、多說
 a. 多讀,像第一招,有時候會幫助你瞭解問題的所在或 think out of box,讀也包括
   讀參考資料~
 b. 多寫,熟能生巧~工欲善其事,必先利其器~
 c. 多想,解法大部份還是要腦袋想出來,即使是人家的也要腦袋理解、吸收
 d. 多說,只有在你能表達出問題所在,才表示你真正瞭解問題~只有你能表達出你的知
   識,那個知識才是你的~
第九招:學會改進重於學會重寫
 a. 任何時間都要學會成本控制~不然你就沒有經費~
 b. 當來練習學會維護別人寫得爛程式~以後踫到再怎麼爛也看得懂~
 c. 為什麼爛-用註解的方法記錄下來,有機會(成本效益考量)再改進-記住是改進,不
   是重寫
 d. 由這種維護的痛苦加深寫好程式的方法和印象~真是歹命呀~;)
 e. 工作機會要找改進的粉多,完全寫新的粉少~
第十招:記得備份
 a. 即使BMW也會 Crash,那「軟~」體會可能都不當機嗎?有誰說他家有裝避雷針不
   怕閃電、有水管(PVC)把電源線和所有線包起來不讓老鼠咬~還有說他寫的程式永
   遠不會當 (如果是,偶送你Taiwan No 1封號 的病毒~)
 b. 讓電腦忙一下讓腦袋休息一下,對大家都好~
 c. 還是記得備份~遠方又傳來哀嚎:「神啊~請讓偶記得備份~」
————————————————————-
看了覺得很有道理,和大家分享一下