Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲国语在线视频手机在线,亚洲伦理一区二区三区,一区二区不卡免费视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          .NET Core 和 ASP.NET Core 中

          .NET Core 和 ASP.NET Core 中的日志記錄

          NET Core 支持適用于各種內(nèi)置和第三方日志記錄提供程序的日志記錄 API。 本文介紹了如何將日志記錄 API 與內(nèi)置提供程序一起使用。

          本文中所述的大多數(shù)代碼示例都來自 ASP.NET Core 應(yīng)用。 這些代碼片段的日志記錄特定部分適用于任何使用通用主機(jī)的 .NET Core 應(yīng)用。 ASP.NET Core Web 應(yīng)用模板使用通用主機(jī)。

          日志記錄提供程序

          日志記錄提供程序存儲日志,但顯示日志的 Console 提供程序除外。 例如,Azure Application Insights 提供程序?qū)⑷罩敬鎯υ?Azure Application Insights 中。 可以啟用多個提供程序。

          默認(rèn) ASP.NET Core Web 應(yīng)用模板:

          • 使用通用主機(jī)。
          • 調(diào)用 CreateDefaultBuilder,這將添加以下日志記錄提供程序:控制臺調(diào)試EventSourceEventLog:僅限 Windows

          C#

          SP.NET 幫助器 - 對象參考手冊


          Analytics 對象參考手冊(Google)

          Helper描述
          Analytics.GetGoogleHtml(webPropertyId)為指定的 ID 呈現(xiàn) Google Analytics JavaScript 代碼。
          Analytics.GetStatCounterHtml(project, security)為指定的項(xiàng)目呈現(xiàn) StatCounter Analytics JavaScript 代碼。
          Analytics.GetYahooHtml(account)為指定的賬號呈現(xiàn) Yahoo Analytics JavaScript 代碼。

          Bing 對象參考手冊

          Helper描述
          Bing.SearchBox([boxWidth])給 Bing 傳遞搜索。您可以設(shè)置 Bing.SiteUrl 和 Bing.SiteTitle 屬性來設(shè)定站點(diǎn)搜索和搜索框的標(biāo)題,通常是在 _AppStart 頁面設(shè)置這些屬性。
          Bing.AdvancedSearchBox([, boxWidth] [, resultWidth] [, resultHeight]

          [, themeColor] [, locale])

          用可選的格式顯示 Bing 搜索結(jié)果在頁面上。您可以設(shè)置 Bing.SiteUrl 和 Bing.SiteTitle 屬性來設(shè)定站點(diǎn)搜索和搜索框的標(biāo)題,通常是在 _AppStart 頁面設(shè)置這些屬性。

          Chart 對象參考手冊

          Helper描述


          Chart(width, height [, template] [, templatePath])初始化圖表。
          Chart.AddLegend([title] [, name])給圖表添加一個圖例。
          Chart.AddSeries([name] [, chartType] [, chartArea]

          [, axisLabel] [, legend] [, markerStep] [, xValue]

          [, xField] [, yValues] [, yFields] [, options])

          給圖表添加一系列數(shù)據(jù)。

          Crypto 對象參考手冊

          Helper描述
          Crypto.Hash(string [, algorithm])

          Crypto.Hash(bytes [, algorithm])

          返回指定數(shù)據(jù)的哈希。默認(rèn)算法是 sha256。

          Facebook 對象參考手冊

          Helper描述
          Facebook.LikeButton(href [, buttonLayout] [, showFaces] [, width] [, height]

          [, action] [, font] [, colorScheme] [, refLabel])

          讓 Facebook 用戶連接到網(wǎng)頁。

          FileUpload 對象參考手冊

          Helper描述
          FileUpload.GetHtml([initialNumberOfFiles] [,allowMoreFilesToBeAdded]

          [, includeFormTag] [, addText] [, uploadText])

          為上傳文件呈現(xiàn) UI。

          GamerCard 對象參考手冊

          Helper描述
          GamerCard.GetHtml(gamerTag)呈現(xiàn)指定的 Xbox gamer 標(biāo)簽。

          Gravatar 對象參考手冊

          Helper描述
          Gravatar.GetHtml(email [, imageSize] [, defaultImage] [, rating]

          [, imageExtension] [, attributes])

          為指定的電子郵件地址呈現(xiàn) Gravatar 圖像。

          Json 對象參考手冊

          Helper描述
          Json.Encode(object)用 JavaScript Object Notation (JSON) 把數(shù)據(jù)對象轉(zhuǎn)換為字符串。
          Json.Decode(string)轉(zhuǎn)換 JSON 編碼的輸入字符串為您指定的數(shù)據(jù)對象。

          LinkShare 對象參考手冊

          Helper描述
          LinkShare.GetHtml(pageTitle [, pageLinkBack] [, twitterUserName]

          [, additionalTweetText] [, linkSites])

          使用指定的標(biāo)題和可選的 URL 呈現(xiàn)社會網(wǎng)絡(luò)鏈接。

          ModelState 對象參考手冊

          Helper描述
          ModelStateDictionary.AddError(key, errorMessage)關(guān)聯(lián)錯誤信息和一個表單域。使用 ModelState 幫助器訪問成員。
          ModelStateDictionary.AddFormError(errorMessage)關(guān)聯(lián)錯誤信息和一個表單。使用 ModelState 幫助器訪問成員。
          ModelStateDictionary.IsValid如果沒有驗(yàn)證錯誤,返回 true。使用 ModelState 幫助器訪問成員。

          ObjectInfo 對象參考手冊

          Helper描述
          ObjectInfo.Print(value [, depth] [, enumerationLength])呈現(xiàn)一個對象和所有子對象的屬性和值。

          Recaptcha 對象參考手冊

          Helper描述
          Recaptcha.GetHtml([, publicKey] [, theme] [, language] [, tabIndex])呈現(xiàn) reCAPTCHA 驗(yàn)證測試。
          ReCaptcha.PublicKey

          ReCaptcha.PrivateKey

          設(shè)置 reCAPTCHA 服務(wù)的公共和私有密鑰。通常是在_AppStart 頁面設(shè)置這些屬性。
          ReCaptcha.Validate([, privateKey])返回 reCAPTCHA 測試結(jié)果。
          ServerInfo.GetHtml()Renders 呈現(xiàn)有關(guān) ASP.NET Web Pages 的狀態(tài)信息。

          Twitter 對象參考手冊

          Helper描述
          Twitter.Profile(twitterUserName)為指定的用戶呈現(xiàn) Twitter 流。
          Twitter.Search(searchQuery)為指定的搜索文本呈現(xiàn) Twitter 流。

          Video 對象參考手冊

          Helper描述
          Video.Flash(filename [, width, height])為指定的文件呈現(xiàn)寬度和高度可選的 Flash 視頻播放。
          Video.MediaPlayer(filename [, width, height])為指定的文件呈現(xiàn)寬度和高度可選 的 Windows Media 播放器。
          Video.Silverlight(filename, width, height)為指定的 .xap 文件呈現(xiàn)所需的寬度和高度 的 Silverlight 播放器。

          WebCache 對象參考手冊

          Helper描述
          WebCache.Get(key)通過 key 返回指定的對象,如果對象未找到則返回 null。
          WebCache.Remove(key)通過 key 從緩存中刪除指定的對象。
          WebCache.Set(key, value [, minutesToCache] [, slidingExpiration])通過 key 把 value 放置到指定名稱的緩存中。

          WebGrid 對象參考手冊

          Helper描述
          WebGrid(data)Creates a 使用查詢數(shù)據(jù)創(chuàng)建一個新的 WebGrid 對象。
          WebGrid.GetHtml()Renders markup 顯示數(shù)據(jù)在 HTML 表格中。
          WebGrid.Pager()為 WebGrid 對象呈現(xiàn)一個頁面。

          WebImage 對象參考手冊

          Helper描述
          WebImage(path)從指定的路徑加載一個圖像。
          WebImage.AddImagesWatermark(image)為指定圖像加水印。
          WebImage.AddTextWatermark(text)為圖像添加指定文本。
          WebImage.FlipHorizontal()

          WebImage.FlipVertical()

          水平/垂直翻轉(zhuǎn)圖像
          WebImage.GetImageFromRequest()當(dāng)圖像被傳送到一個文件上傳頁面時,加載圖像。
          WebImage.Resize(width, height)調(diào)整圖像大小。
          WebImage.RotateLeft()

          WebImage.RotateRight()

          向左或向右旋轉(zhuǎn)圖像。
          WebImage.Save(path [, imageFormat])保存圖像到指定路徑。

          鳥學(xué)ASP 

          學(xué)習(xí)目的:安裝調(diào)試ASP的環(huán)境,并且調(diào)試第一個簡單的程序。

            因?yàn)槲覀儗W(xué)ASP的目的就是想建立一個網(wǎng)站,那么一般習(xí)慣是建立的網(wǎng)站內(nèi)所有文件應(yīng)該同時放到一個文件夾中(當(dāng)然這個文件夾中還可以按需要設(shè)置子文件夾!),所以在這里我在E盤建立一個myweb的文件夾。

            首先來安裝Windows 2000/XP自帶的IIS作為服務(wù)器。在這里因?yàn)槲业臋C(jī)器是XP所以所有截圖都是XP下完成的。

            控制面板-->>添加或刪除程序。


           然后是添加刪除windows組件-選中IIS組件前面的勾,之后等待安裝,這里可以觀看本站以前給大家做的視頻教程,完成安裝后。


          之后在控制面板中雙擊“管理工具”。


           然后雙擊“internet信息服務(wù)”,這就是IIS。


          選擇“默認(rèn)網(wǎng)站”,然后右鍵屬性或者直接按快捷鍵


           在屬性頁面內(nèi)只有三個頁面需要修改,先是網(wǎng)站,如果用戶有固定IP,可以分配一個IP

          接下來在注主目錄中選擇一個自己硬盤上面的文件夾存放網(wǎng)站(這個目錄就是我們上面說的在e盤建立的目錄),選中讀取、寫入

           在文檔中添加默認(rèn)的頁面,比如打http://www.liexiaow.com獵校網(wǎng) 調(diào)用了一個默認(rèn)文檔即是你添加的頁面。


          接下來也是最關(guān)鍵的:

            1、在剛才你定義的一個文件夾里面新建一個文件,可以用記事本建立一個文本文件然后把下面的內(nèi)容復(fù)制到記事本中:

          <%response.write "hello world!"%>

            保存為1.asp文件(注意:.asp不能省略啊,如果省略了你就保存了一個文本文件了)。

            最后打開IE,在地址欄內(nèi)輸入:http://127.0.0.1/1.asp(或者h(yuǎn)ttp://localhost/1.asp)回車后就可以看到效果了。

          最后解釋一下代碼的含義。

            response.write就是顯示的意思,前后的 <% 和 %> 是asp的標(biāo)記符號,在這里面的信息都由服務(wù)器處理。127.0.0.1是地址,1.asp是文件名。第一天就結(jié)束了!

          表單元素要放在一個表單域里面,建立一個表單域。然后修改動作里面的文件為要接受這個表單變量的ASP文件。方法有兩種,一種是POST,這個方法傳送的變量不會在瀏覽器的地址欄里面顯示,可以大批量傳送數(shù)據(jù);GET則是會在瀏覽器地址欄里面顯示的,等一會舉例子。

            下面我們看一個表單元素。

            文本域,這個是最基本的,傳送的是文本信息,一般用戶名,密碼都要用這個傳送,不過要是密碼的話要在類型里面選擇密碼,這樣就會以*代替顯示出來的字符,文本域的名字很重要,以后會用到這個名字所以一般不用默認(rèn)的名字。

            現(xiàn)在舉一個例子:如果文本域的名字是name的話,用來傳送網(wǎng)上用戶登記的名字,在表單域里面,傳送到reg.asp,用POST方法,那么在reg.asp里面這樣得到變量<%name=request.form("name")%>如果要顯示變量再家加一句,response.write name,這樣就形成了一個從客戶端到瀏覽器再回到客戶端的過程。如果方法用的是GET的話,那么就改為name=request.querystring("name")實(shí)際上兩者可以統(tǒng)一為name=request("name")。下面看看按鈕,按鈕里面無非兩種,一種是提交表單的按鈕,一種是重新輸入的按鈕。單選按鈕,一個按鈕有一個值。在列表里面同樣,添加列表選項(xiàng)和值。下面舉一個例子,實(shí)際上各種表單元素都是差不多的。

            下面是具體的代碼: (注:把下面代碼保存為一個.htm的文件就可以了.我保存的1.htm)

          <form name="form1" method="post" action="reg.asp"> 
          姓名: 
          <input type="text" name="name"> //文本域,名字叫name 
          <br> 
          密碼: 
          <input type="password" name="psw"> //文本域,用來輸入密碼,名字叫psw 
          <br> 
          <br> 
          性別: 
          <input type="radio" name="sex" value="男"> //單選,名字叫sex,數(shù)值是"男" 
          男 
          <input type="radio" name="sex" value="女"> //單選,名字叫sex,數(shù)值是"女" 
          女 <br> 
          <br> 
          城市: 
          <select name="city"> 
          <option value="上海" selected>上海</option> //復(fù)選,大家自己分析一下 
          <option value="北京">北京</option> 
          </select> 
          <br> 
          <input type="submit" name="Submit" value="提交"> //提交按鈕 
          <input type="reset" name="Submit2" value="重置"> 
          </form>
            下面是reg.asp的代碼,用來顯示出剛才受到的信息:
          <% 
          name=request.form("name") 
          psw=request.form("psw") 
          sex=request.form("sex") 
          city=request.form("city") 
          response.write name 
          response.write psw 
          response.write sex 
          response.write city 
          %>

            打開瀏覽器在地址欄內(nèi)輸入:http://localhost/1.htm如下圖:(呵呵,因?yàn)槭蔷毩?xí),我沒有美化頁面啊!)


          下面我們要開始學(xué)數(shù)據(jù)庫了!只要把表單和數(shù)據(jù)庫相應(yīng)的字段連接上就可以了。

          學(xué)會ACCEES數(shù)據(jù)庫的使用。

            首先,要安裝OFFICE里面的ACCEES(我的演示是OFFICE 2003版本),安裝過程這里就不說了,安裝好以后會,打開Access.按空數(shù)據(jù)庫,新建一個數(shù)據(jù)庫,文件名字可以叫g(shù)uestbook.mdb。(提示:為了安全期間,文件名復(fù)雜一點(diǎn)好,因?yàn)锳CCESS數(shù)據(jù)庫可以被下載的!!)



          使用設(shè)計(jì)器創(chuàng)建新的表,一個數(shù)據(jù)庫MDB文件里面可以建立多個表。雙擊“使用設(shè)計(jì)器創(chuàng)建表”


           填寫字段名字然后選擇字段類型,一條記錄可以有很多字段,可以有很多字段類型,字段大小的意思就是這個字段最多可以容納的字符數(shù),當(dāng)這個字段沒有任何信息是,ACCEES會用默認(rèn)值代替(沒有任何信息不是空的意思),一般必填字段和允許空字符串分別設(shè)置為否、是,以防止出錯

          按照上圖分別建立幾個字段,在時間中默認(rèn)值為=now()就是這個字段不需要填寫,系統(tǒng)直接以當(dāng)前時間代替。

          所以的字段都建立以后,關(guān)閉這個窗口,按提示保存表,輸入表的名字guest,最后出現(xiàn)下圖的提示,選擇是,主鍵是記錄的標(biāo)識,為了以后簡單,大家可以把編號改為ID,還有在ACCEES里面盡量不要用中文表示字段名字

          最后,雙擊打開這個表,觀看表里面的記錄


          握ACCESS數(shù)據(jù)庫的連接和讀取記錄

            首先還打開我們上一節(jié)課建立的數(shù)據(jù)庫中的表,隨便輸入幾條記錄,如下圖:


          這節(jié)課學(xué)習(xí)的內(nèi)容有一點(diǎn)枯燥,但是很重要。在這里不需要知道命令具體的運(yùn)行情況,外面的很多書籍之所以不適合入門就是因?yàn)榻榻B了太多的理論知識,讓初學(xué)者一頭霧水。

            下面開門見山,看兩行代碼:

          <% 
          set conn=server.createobject("adodb.connection") 
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb") 
          %>
            第一行定義了一個adodb數(shù)據(jù)庫連接組件,第二行連接了數(shù)據(jù)庫,大家只要修改后面的數(shù)據(jù)庫名字就可以了。是不是很簡單?
            下面再看三行:
          <% 
          exec="select * from guest" 
          set rs=server.createobject("adodb.recordset") 
          rs.open exec,conn,1,1 
          %>
            這三行加在前面兩行的后面,第一句:設(shè)置查詢數(shù)據(jù)庫的命令,select后面加的是字段,如果都要查詢的話就用*,from后面再加上表的名字,我們前面建立的是不是一個gust表阿?第二句:定義一個記錄集組件,所有搜索到的記錄都放在這里面,第三句是打開這個記錄集,exec就是前面定義的查詢命令,conn就是前面定義的數(shù)據(jù)庫連接組件,后面參數(shù)“1,1”,這是讀取,后面講到修改記錄就把參數(shù)設(shè)置為1,3,好了接下來我們讀取記錄。
          <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
          <%do while not rs.eof%><tr> 
          <td><%=rs("name")%></td> 
          <td><%=rs("tel")%></td> 
          <td><%=rs("message")%></td> 
          <td><%=rs("time")%></td> 
          </tr><% 
          rs.movenext 
          loop 
          %> 
          </table>
          //下面的三條語句是用于關(guān)閉數(shù)據(jù)庫
          
           rs.close
          set rs=nothing
          conn.close
          set conn=nothing
          

            在一個表格中,我們用4列分別顯示了上次建立的表里面的四個字段,用do循環(huán),not rs.eof的意思是條件為沒有讀到記錄集的最后,rs.movenext的意思是顯示完一條轉(zhuǎn)到下面一條記錄,<%=%>就等于<%response.write%>用于在html代碼里面插入asp代碼,主要用于顯示變量。

            把上面三段代碼依次復(fù)制粘貼到剪貼板中,一定要按順序復(fù)制粘貼啊!,然后保存為duqu.asp就可以了!打開瀏覽器,在地址欄內(nèi)輸入:http://localhost/duqu.asp.

            下面是我機(jī)器上面的結(jié)果圖片。


          學(xué)會數(shù)據(jù)庫的基本操作--寫入記錄

            數(shù)據(jù)庫的基本操作無非是:查詢記錄,寫入記錄,刪除記錄,修改記錄。

            今天我們先學(xué)習(xí)寫入記錄。先建立一個表單:(把下面文章保存為5.htm)

          <form name="form1" method="post" action="exa5.asp">
          name <input type="text" name="name"><br>
          tel <input type="text" name="tel"><br>
          message <input type="text" name="message" value=""><br>
          <input type="submit" name="Submit" value="提交">
          <input type="reset" name="Submit2" value="重置">
          </form>

            表單提交到exa5.asp,下面是exa5.asp的代碼: (把下面代碼保存為5.asp)

          <%
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
          name=request.form("name")
          tel=request.form("tel")
          message=request.form("message")
          exec="insert into guest(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"
          conn.execute exec
          conn.close
          set conn=nothing
          response.write "記錄添加成功!"
          %>

            在這里前面兩句我不說了,后面三句我也不說了,前面說過exec里面的是執(zhí)行的命令,添加記錄的比較繁,大家要仔細(xì)看。

            insert into后面加的是表的名字,后面的括號里面是需要添加的字段,不用添加的或者字段的內(nèi)容就是默認(rèn)值的可以省略。注意,這里的變量一定要和ACCESS里面的字段名對應(yīng),否則就會出錯。values后面加的是傳送過來的變量。exec是一個字符串,"insert into guest(name,tel,message)values('"是第一段,在ASP里面不能嵌雙引號,所以可以用'代替雙引號,放在雙引號里面,連接兩個變量用+或者&所以"',"又是一段,中間夾了一個name就是表單傳來的變量,這樣就可以在這個變量外面加兩個'',表示是字符串了,后面的tel是數(shù)字型變量所以不需要外面包圍'',大家慢慢分析這句話,如果用表單傳來的數(shù)據(jù)代替變量名字的話這句話為(假設(shè)name="aaa",tel=111,message="bbb"):"insert into guest(name,tel,message)values('aaa',111,'bbb')"。

            接下來的conn.execute 就是執(zhí)行這個exec命令,最后別忘記把打開的數(shù)據(jù)庫關(guān)閉,把定義的組件設(shè)置為空,這樣可以返回資源。

            下面幾條語句用于關(guān)閉數(shù)據(jù)庫的代碼:

          rs.close
          set rs=nothing
          conn.close
          set conn=nothing

            記住,次序不可以顛倒! 可以到數(shù)據(jù)庫里面去看一看,或者用duqu.asp讀取看看是不是多了記錄阿?下面是我利用上一節(jié)的文件讀取數(shù)據(jù)庫的圖:


          學(xué)會數(shù)據(jù)庫的基本操作--查詢記錄

            在第四天中我們用到下面這樣一個程序:

          <% 
          set conn=server.createobject("adodb.connection") 
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb") 
          exec="select * from guest" 
          set rs=server.createobject("adodb.recordset") 
          rs.open exec,conn,1,1 
          %>
            我們查詢的是所有的記錄,但是我們要修改、刪除記錄的時候不可能是所有記錄,所有我們要學(xué)習(xí)檢索合適的記錄。先看一條語句:
          a="aaa"
          b=1111110
          exec="select * from guestbook where name='"+a+"'and tel="+b
            where后面加上的是條件,與是and,或是or,我想=,<=,>=,<,>的含義大家都知道吧。這句話的意思就是搜索name是“aaa”的,并且電話是“1111110”的記錄。還有一點(diǎn)就是如果要搜索一個字段里面是不是包含一個字符串就可以這么寫:where instr(name,a)也就是搜索name里面有a(aaa)這個字符串的人。
            我這里的a,b,是常量,大家可以讓a,b是表單提交過來的變量,這樣就可以做一個搜索了。
            下面大家看看這個代碼,理解一下:(把下面代碼存為6.htm文件)
          <form name="form1" method="post" action="exam6.asp">
          搜索:<br>
          name=<input type="text" name="name">
          and tel=<input type="text" name="tel">
          <br>
          <input type="submit" name="Submit" value="提交">
          <input type="reset" name="Submit2" value="重置">
          </form>
            exam6.asp(把下面代碼存為exam6.asp)
          <%
          name=request.form("name")
          tel=request.form("tel")
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
          exec="select * from guest where name='"+name+"' and tel="+tel
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn,1,1
          %>
          <html>
          <head>
          <title>無標(biāo)題文檔</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head> 
          <body bgcolor="#FFFFFF" text="#000000"> 
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <%
          do while not rs.eof
          %><tr>
          <td><%=rs("name")%></td>
          <td><%=rs("tel")%></td>
          <td><%=rs("message")%></td>
          <td><%=rs("time")%></td>
          </tr>
          <%
          rs.movenext
          loop
          %>
          </table>
          </body>
          </html>

            首先在瀏覽器中輸入http://localhost/6.htm如下圖所示:



          學(xué)會數(shù)據(jù)庫的基本操作--刪除記錄

            開門見山,大家直接看程序。

          exec="delete * from guest where id="&request.form("id")

            上面這句話完成了刪除記錄的操作,不過鎖定記錄用了記錄唯一的表示id,我們前面建立數(shù)據(jù)庫的時候用的是系統(tǒng)給我們的主鍵,名字是編號,由于是中文的名字不是很方便,大家可以修改為id,我已經(jīng)修改了啊!

            不修改的話就是用下面的代碼了:

          exec="delete * from guestbook where 編號="&request.form("id")

            下面我們看完整的代碼:一個表單傳給ASP文件一個ID,然后這個ASP文件就刪除了這個ID。

            7.htm:

          <form name="form1" method="post" action="exam7.asp">
          請輸入刪除的ID號:
          <input type="text" name="id">
          <input type="submit" name="Submit" value="提交">
          </form>

            exam7.asp:(可以先運(yùn)行這個文件看一下所有記錄的ID和想刪除記錄的ID,刪除記錄以后也可以通過這個文件復(fù)查。)
          <%
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
          exec="select * from guest"
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn,1,1 
          %>
          <html>
          <head>
          <title>無標(biāo)題文檔</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head>
          <body bgcolor="#FFFFFF" text="#000000">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <%
          do while not rs.eof
          %><tr>
          <td><%=rs("id")%></td>
          <td><%=rs("name")%></td>
          <td><%=rs("tel")%></td>
          <td><%=rs("message")%></td>
          <td><%=rs("time")%></td>
          </tr>
          <%
          rs.movenext
          loop
          %>
          </table>
          </body>
          </html>


          學(xué)會數(shù)據(jù)庫的基本操作--修改記錄

            先來看代碼:(存為exam8.asp就可以了)

          <%
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
          exec="select * from guest where id="&request.form("id")
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn
          %>
          <form name="form1" method="post" action="modifysave.asp">
          <table width="748" border="0" cellspacing="0" cellpadding="0">
          <tr> 
          <td>name</td>
          <td>tel</td>
          <td>message</td>
          </tr>
          <tr> 
          <td>
          <input type="text" name="name" value="<%=rs("name")%>">
          </td>
          <td>
          <input type="text" name="tel" value="<%=rs("tel")%>">
          </td>
          <td>
          <input type="text" name="message" value="<%=rs("message")%>">
          <input type="submit" name="Submit" value="提交">
          <input type="hidden" name="id" value="<%=request.form("id")%>">
          </td>
          </tr>
          </table>
          </form>
          <%
          rs.close
          set rs=nothing
          conn.close
          set conn=nothing
          %>
            到現(xiàn)在應(yīng)該分析這個代碼沒有什么問題了吧,這個代碼的作用是接受前面一個頁面的ID然后顯示這條記錄,文本框即是輸入的地方也是顯示的地方,如果需要修改的話修改以后按提交;如果不需要修改就可以直接按提交按鈕。
            在這里因?yàn)楸窘坛踢m合初學(xué)的,所以也把提交的表單內(nèi)容給出來,把下面代碼存為8.htm文件
          <form name="form1" method="post" action="exam8.asp">
          請輸入要修改的記錄的ID:
          
           <input type="text" name="id">
          <br>
          <input type="submit" name="submit" value="提交">
          </form>
          
          這里還有一個東西以前沒有說,那就是隱藏的表單元素:hidden元素,里面的value是不用用戶輸入的,會隨著表單一起提交,用于傳遞變量。
            下面是modifysave.asp的代碼:
          <%
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
          exec="select * from guest where id="&request.form("id")
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn,1,3
          rs("name")=request.form("name")
          rs("tel")=request.form("tel")
          rs("message")=request.form("message")
          rs.update
          rs.close
          set rs=nothing
          conn.close
          set conn=nothing
          %>

            在這里,rs.open exec,conn,1,3后面的參數(shù)是1,3,這我以前提過,修改記錄就要用1,3。實(shí)際上修改記錄很容易看懂,記錄集是rs,rs("aa")就是當(dāng)前記錄aa字段的東西,讓它等于新的數(shù)據(jù)request.form("aa")當(dāng)然就修改了,不過最后別忘記保存,那就是rs.update!

            說到這里,記錄的搜索,讀取,修改,插入都說了,通過這最基本的東西就可以作出復(fù)雜的東西了,外面的大型數(shù)據(jù)庫:新聞系統(tǒng),留言簿就是字段多一點(diǎn)罷了。今天的示例中的代碼是結(jié)合以前的數(shù)據(jù)庫的,以后回去調(diào)試分析一下。

            大家測試的流程:首先運(yùn)行8.htm文件



          基本的SESSION組件,總結(jié)response,request組件。

            首先,有會員系統(tǒng)的任何程序都會用到檢測是不是用戶已經(jīng)登陸這個步驟。這就用到了SESSION組件,下面我們 看一個代碼來說明。

          <%
          session("login")="yes"
          %>

            這句話的意思就是在session里面定義一個login字符串變量,值為"yes",直接可以賦值,不需要聲明。是不是很簡單?

            如果我們做管理員登陸系統(tǒng)的話,首先是一段檢測是不是管理員:

          if 是 then
          session("isadmin")=yes"
          else
          session("isadmin")="no"
          end if

            在每一個需要管理員才能看的頁面最前面加上:

          <%
          if not session("isaadmin")="yes" then
          response.redirect "login.htm"
          %>

            這樣一般用戶就無法打開這個頁面。解釋一下response.redirect,它是轉(zhuǎn)向的意思,后面的"login.htm"就是轉(zhuǎn)向的文件。這樣沒有登陸的管理員是無法看到后面的內(nèi)容的。

            response組件基本就是用到response.write(),response.redirect() 分別是寫字符串和轉(zhuǎn)向的作用。

            request基本就是request.form(),request.querystring() 分別是接受post,get方法傳來的信息。

            最后我們一起來制作一個簡單的后臺登陸管理界面,首先在myweb目錄下建立一個admin文件夾,然后我們建立一個數(shù)據(jù)庫名字為admin.mdb,然后我們再建立一個表,表中設(shè)置兩個字段name,password,類型都是文本型的!最后退出時設(shè)置主鍵,保存為表名check。然后可以輸入一條記錄用戶名:admin,密碼:admin。具體建立數(shù)據(jù)庫的方法請看《菜鳥十天學(xué)會ASP教程之第三天:數(shù)據(jù)庫的建立

            下面我們開始編寫ASP程序,首先建立一個index.asp(管理主界面)程序,代碼如下:

          <%@language=vbscript%>
          <%if not session("checked")="yes" then 
          response.Redirect "login.asp"  
          else
          %>
          <html>
          <head>
          <title>管理界面</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head>
          <frameset cols="167,*" frameborder="YES" border="1" framespacing="1" rows="*" bordercolor="#666666"> 
            <frame name="leftFrame" scrolling="auto" noresize src="left.asp">
            <frame name="mainFrame" src="right.asp">
          </frameset>
          <noframes> 
          <body bgcolor="#FFFFFF" text="#000000">
          </body>
          </noframes> 
          </html>
          <%end if%>
            在上面的代碼中,大家可以看到用到login.asp,left.asp,right.asp程序
            login.asp://登陸系統(tǒng)程序
          <html>
          <head>
          <title>管理員入口</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <style type="text/css">
          <!--
          .topic {  font-family: "宋體"; font-size: 11pt; font-weight: bold; color: #FFFFFF}
          .font {  font-family: "宋體"; font-size: 10pt; font-weight: normal; color: #000000}
          .table {  border-color: #666666 black; border-style: solid; border-top-width: 1pt; border-right-width: 0px; border-bottom-width: 1pt; border-left-width: 0px}
          .text {  border: 1pt #999999 solid; height: 15pt}
          -->
          </style>
          </head>
          <body text="#000000" topmargin="0" bgcolor="#FFFFFF">
          <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center" height="100%">
            <tr> 
              <td height="129" valign="top" colspan="3">  </td>
            </tr>
            <tr> 
              <td width="230" height="170" valign="top"> </td>
              <td valign="top" width="277"> 
                <table width="100%" border="0" cellspacing="1" cellpadding="0" height="100%" bgcolor="#000000" align="center">
                  <tr> 
                    <td align="center" valign="middle" height="167">
                      <form name="form1" method="post" action="check.asp">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
                        <tr bgcolor="#62892C"> 
                          <td height="31" class="topic" colspan="2"> 
                            <div align="center">管理員入口<br>
                            </div>
                          </td>
                        </tr>
                        <tr> 
                          
                            <td bgcolor="#87bc3c" colspan="2" class="table"> 
                              <div align="center"> <span class="font"> 管理員:</span> 
                                <input type="text" name="name"  class="text" size="20" onMouseOver="this.focus()">
                                <br>
                                <span class="font">密 碼:</span> 
                                <input type="password" name="password" class="text" size="20" onMouseOver="this.focus()"><%if session("check")="wrong" then response.Write "<br><span class='font'><font color=red>驗(yàn)證錯誤!</font></span>" end if%>
                              </div>
                            </td>
                       
                        </tr>
                        <tr> 
                          <td bgcolor="#87bc3c" width="52%"> 
                              <div align="center" class="font">
                                <input type="reset" name="Submit2" value="重置" class="text">
                              </div>
                          </td>
                          <td bgcolor="#87bc3c" width="48%"> 
                              <div align="center" class="font">
                                <input type="submit" name="Submit22" value="提交" class="text">
                              </div>
                          </td>
                        </tr>
                      </table>   </form>
                    </td>
                  </tr>
                </table>
              </td>
              <td width="241" valign="top"> </td>
            </tr>
            <tr> 
              <td height="123" valign="top" colspan="3"> </td>
            </tr>
          </table>
          </body>
          </html>
            在上面的程序中用到一個檢查用戶和密碼是否正確的程序check.asp://核對輸入的用戶和密碼是否正確
          <%
          dim name,password
          name=request.form("name")
          password=request.form("password")
          dim exec,conn,rs
          exec="select *from check where(name='"&name&"' and password='"&password&"')"
          set conn=server.createobject("adodb.connection")
          conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("admin.mdb")
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn
          if not rs.eof then
          rs.Close
          conn.Close
          session("checked")="yes"
          session("check")="right"
          response.Redirect "index.asp"
          else
          session("checked")="no"
          session("check")="wrong"
          response.Redirect "login.asp"
          end if
          %>
            left.asp://管理導(dǎo)航
          <%@language=vbscript%>
          <%if not session("checked")="yes" then 
          response.Redirect "login.asp"  
          else
          %>
          <html>
          <head>
          <title>管理界面</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head>
          <body text="#000000" topmargin="0" bgcolor="#ffffff" leftmargin="10">
          <div align="center"><a href="index.asp" target="_parent"><br>
            <br>
            管理界面首頁</a> <a href="exit.asp" target="_parent">退出</a><br>  
            <br>
          </div>
          </body>
          </html>
          <%end if%>
            exit.asp://退出系統(tǒng)
          <%@language=vbscript%>
          <%
          session("check")=""
          session("checked")=""
          response.redirect "login.asp"
          %>
            right.asp://具體管理的內(nèi)容
          <%@language=vbscript%>
          <%if not session("checked")="yes" then 
          response.Redirect "login.asp"  
          else
          %>
          <html>
          <title>管理界面</title>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          </head>
          <body bgcolor="#ffffff" text="#000000" topmargin="20" class="title">
          這里是網(wǎng)頁教學(xué)網(wǎng)的管理系統(tǒng)示例!請大家多研究使用!
          
           </body>
          </html> 
          <%end if%>


            運(yùn)行時首先運(yùn)行index.asp程序,運(yùn)行效果部分截圖如下:

          分頁技術(shù)

            今天最后一天我們學(xué)習(xí)一下ASP里面稍微難一點(diǎn)地分頁技術(shù),畢竟當(dāng)我們有N條記錄的時候我們不可能把所有記錄顯示在一個頁面里面吧。

          <%
          exec="select * from test"
          set rs=server.createobject("adodb.recordset")
          rs.open exec,conn,1,1
          rs.PageSize=3
          pagecount=rs.PageCount 
          page=int(request.QueryString ("page"))
          if page<=0 then page=1
          if request.QueryString("page")="" then page=1
          rs.AbsolutePage=page 
          %>

            rs.pagesize設(shè)置一個頁面里面顯示的記錄數(shù),pagecount是我們自己定義的一個變量,rs.pagecount是記錄的個數(shù),page也是我們自己定義的一個變量,我們下一頁的鏈接可以設(shè)置為list.asp?page=<%=page+1%>,下一頁的鏈接可以設(shè)置為list.asp?page=<%=page-1%>,這樣當(dāng)按下鏈接的時候調(diào)用頁面自己,page這個變量就+1或者-1了,最后我們讓rs.absolutepage(當(dāng)前頁面)為第page頁就可以了。

            if request.QueryString("page")="" then page=1,這句話的作用就是我們打開list.asp的時候沒有跟隨page變量,自動設(shè)置為page=1,防止出錯,還有當(dāng)我們if....then...放在一行的時候end if可以省略。是不是分頁也不難?

            下面說一種特殊情況:

          if page=1 and not page=pagecount,這個時候沒有上一頁,但是有下一頁


          elseif page=pagecount and not page=1,這個時候沒有下一頁,但是有上一頁


          elseif page<1,這個時候沒有任何記錄


          elseif page>pagecount then,這個時候沒有任何記錄


          elseif page=1 and page=pagecount,這個時候沒有上一頁,沒有下一頁


          else,這個時候有上一頁,也有下一頁。


            下面看一段顯示1到n頁,且每一個數(shù)字點(diǎn)擊以后就出現(xiàn)這個數(shù)在代表的頁面的代碼,很常見哦。

          <%for i=1 to pagecount%>
          <a href="list.asp?page=<%=i%>"><%=i%></a><%next%>

            for....next是循環(huán)從i=1開始,循環(huán)一次加1到pagecount為止。

            最后我的實(shí)例里面包含了一個最簡單的ASP程序,但是功能樣樣有,是ASP的精髓,每一個ASP大型程序都包含了它。

          add.htm增加記錄頁面


          add.asp增加記錄操作


          conn.asp數(shù)據(jù)庫鏈接


          del.asp刪除記錄操作


          modify.asp修改記錄頁面


          modifysave.asp修改記錄操作


          list.asp這個是這個程序的核心,通過這個頁面實(shí)現(xiàn)記錄的添加、修改、刪除。


          主站蜘蛛池模板: 亚洲一区免费视频| 无码人妻精品一区二区三区久久| 亲子乱AV视频一区二区| 蜜桃无码一区二区三区| 丰满少妇内射一区| aⅴ一区二区三区无卡无码| 亚洲熟妇AV一区二区三区宅男| 精品一区二区三区影院在线午夜| 久久一区二区明星换脸| 日韩精品一区二区三区四区| 天码av无码一区二区三区四区 | 成人区人妻精品一区二区三区 | 精品视频在线观看一区二区| 国产福利一区二区三区| 亚洲av无码片区一区二区三区| 久久亚洲综合色一区二区三区| 中文无码AV一区二区三区| 国产伦精品一区二区免费| 亚洲高清偷拍一区二区三区| 亚洲A∨精品一区二区三区| 一区二区视频在线免费观看| 一区二区国产在线播放| 无码精品久久一区二区三区 | 国产AV一区二区三区传媒| 香蕉视频一区二区| 国产美女精品一区二区三区| 中文字幕精品无码一区二区三区| 精品国产AⅤ一区二区三区4区 | 日本不卡一区二区视频a| 国产在线精品一区二区不卡麻豆| 国产精品毛片一区二区| 一区二区高清在线观看| 在线观看免费视频一区| 国产精品美女一区二区视频| 亚洲熟妇av一区二区三区 | 日本一道一区二区免费看| 日本视频一区二区三区| 国产日韩精品一区二区三区在线| 久久久久一区二区三区| 亚洲国产精品一区| 国产一区二区三区小说|