freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

aspnet基于用戶興趣的個性化網頁動態(tài)實—免費畢業(yè)設計論文(編輯修改稿)

2025-01-04 10:40 本頁面
 

【文章內容簡介】 nt(*) from users where 。 sql+= userName=39。 + + 39。 sql+= and pwd=39。 + + 39。 OleDbCommand myCmd = new OleDbCommand(sql, oleConnection)。 OleDbCommand 對象 的特點在于對數(shù)據源執(zhí)行命令的方法 有多種,使用時可以根據執(zhí)行的 SQL 語句和查詢結果的特殊要求而靈活選擇 : ? ExecuteReader() 執(zhí)行返回行的命令。如果用 ExecuteReader 來執(zhí)行 SQL SET 語句等命令,則可能達不到 預期的效果。 ? ExecuteNonQuery() 執(zhí)行 SQL INSERT、 DELETE、 UPDATE 和 SET 語句等命令。 ? ExecuteScalar() 從數(shù)據庫中檢索單個值 通常是查詢結果的第一列處的第一個值 。 三、創(chuàng)建數(shù)據對象 中的數(shù)據對象通常保存的是查詢結果,常用的是 DataSet、DataTable 和 DataReader。對于 OledbCommand 調用 ExecuteReader()方法時, 返回一個 數(shù)據源讀取數(shù)據行的只進流 ,要進一步獲取數(shù)據中的行 或列,就需要用到 OleDbDataReader 對象。 創(chuàng)建 OleDbDataReader,必須調用 OleDbCommand 對象的 ExecuteReader 方法: OleDbDataReader reader = ()。 這條語句創(chuàng)建并打開了一個 OleDbDataReader對象 ,其中 myCmd 為上面創(chuàng)建 數(shù)據訪問對象, sql 是一個字串,代表一條標準的 SQL 語句。 四、操作數(shù)據庫 鏈接到數(shù)據庫以后 ,進行的操作有查詢、插入、刪除等操作。 在上一步中 構造了 OleDbDataReader 對象 reader 后,就能逐行遍歷數(shù)據表 ,進行數(shù)據處理 了 ,例如輸出查詢結果第一個字段中的所有值: while (()) { (reader[0].ToString())。 } 此外,我們通過調用 數(shù)據訪問對象 的 ExecuteNonQuery() 方法來進行插入、刪除、建表等操作。例如: //執(zhí)行插入操作 sql=“INSERT INTO users( ID, username, pwd) VALUES(1,’test’,’test’)” ( )。 //創(chuàng)建一個 Table sql = create table + TableName。 sql += (BehaviorID int not null,。 sql += ClickID smallint not null, 。 sql += Topic varchar(250) ,。 sql += Title varchar(250) )。 ( )。 五、關閉 數(shù)據對象和鏈接對象 在使用了 對象之后要關閉它,因為它使用了一定的服務器資源。通過調用方法 Close 實現(xiàn)關閉,然后再釋放它。 //關閉創(chuàng)建的鏈接對象 ()。 oleConn = null。 與 CGI 的比較 CGI(Common Gateway Interface,通用網關接口 )也是 Inter 上一種功能強大的 Web 頁面技術,其工作方式有別于 ASP。我們現(xiàn)對二者進行比較。 Active Server Pages 開發(fā) Web 應用程序的特點: 1. 完全嵌入 HTML,與 HTML、 Script 語言完美結合。 2. 無須手動編譯和鏈接程序。 3. 面向對象,并可擴展 ActiveX Server 組件功能。 4. 使用腳本語言( JavaScript、 VBScript 或 PERL)編寫。 5. 存取數(shù)據庫輕松容易(使用 ADO 組件)。 6. 可使用任何語言編寫自己的 ActiveX Server 組件。 7. 無瀏覽器兼容問題。 8. 程序代碼隱藏,客戶端僅能看到 ASP 輸出的 HTML 文件。 9. 縮短 Web 開發(fā)時間。 相比之下,使用 CGI 開發(fā) Web 應用程序具有以下缺點: 1. 不易與 HTML 文件集成。 2. 須使用其他較復雜 的語言來開發(fā) CGI 程序。 3. 程序開發(fā)時間較長。 4. 存取數(shù)據庫不容易。 5. 每個 CGI 程序被不同用戶執(zhí)行時都得重新執(zhí)行一次,并占去 Server 的一個端口( Port),降低 Server 效率。 可見, ASP 在數(shù)據庫訪問、與 HTML 的集成、提高服務器的效率等諸多方面都優(yōu)于 CGI,更適應 Web 應用程序開發(fā)的需要,因此本文選擇了 ASP 作為個性化頁面生成器的開發(fā)工具。 第四章 個性化頁面生成器系統(tǒng)的實現(xiàn) 本次畢業(yè)設計中 ,在 WindowsXP 環(huán)境下,利用 IIS+ 技術實現(xiàn)了個性化頁面系統(tǒng)的 Web 服務器端各功能模塊。 具體 開發(fā)工具為 Microsoft Visual Studio 2020,數(shù)據庫采用 Microsoft Access 數(shù)據庫。該服務器端生成器系統(tǒng)主要包括: 1. 用戶注冊 /登陸 2. 用戶點擊序列記錄 3. 根據用戶規(guī)則表動態(tài)生成個性化頁面 以下介紹了各功能模塊的實現(xiàn)方法及一些特殊技術問題的解決。 與數(shù)據庫的鏈接 由于各模塊頻繁地與數(shù)據庫打交道,如何與數(shù)據庫鏈接就顯得十分重要。前面我們已經提到采用 技術訪問數(shù)據庫, 允許多個訪問共享一個鏈接,即僅需要一個 Connection 對象與數(shù)據 庫鏈接,就可重復不斷地利用它訪問一個數(shù)據庫。本文僅用到一個數(shù)據庫,名為 ,而且在第一個用戶登陸時就要進行數(shù)據庫操作,因此我們希望服務器開始便和數(shù)據庫鏈接,所有對數(shù)據庫的訪問都使用這一鏈接,這樣有利于提高服務器的效率。我們采用如下方法,首先在 WinNT 的控制面板的 ODBC 數(shù)據源選項中將 WebsiteDB 庫設置為系統(tǒng) ODBC 數(shù)據源,再在本應用程序的 文件中建立與 WebsiteDB 庫的鏈接,即加入以下語句: void Application_Start(object sender, EventArgs e) { Application[g_strConn] = Provider=。 + Data source=+(./App_Data/)。 Application[g_dbConnection] = new OleDbConnection(Application[g_strConn])。 Application[g_dbConnection].Open()。 } void Application_End(object sender, EventArgs e) { Application[g_dbConnection].Close()。 } 其中, Application_Start 表示 Application 的開始事件, Application_End(表示Application 的結束事件。這樣,在服務器被提出第一個 ASP 請求而建立Application 對 象 時 , 就 會 去 執(zhí) 行 , 從 而 建 立 鏈 接 對 象Application(g_dbConnection),并打開與 數(shù)據庫的鏈接。以后對數(shù)據庫的所有操作都是基于此鏈接。該鏈接關閉于服務器停止運行(由 Application_ End 程序段決定)。 用戶注冊 /登陸系統(tǒng) 要實現(xiàn)用戶頁面的個性化,首先要做的顯然是弄清登陸的用戶是誰。作者原先的構想是根據用戶計算機的 Cookie 信息判斷用戶身份,這樣,只要用戶打開該站點首頁,無須填入身份驗證信息,服務器便能得知其身份。但是,現(xiàn)在有的用戶并不是在固定的計算機上上網,而且有的用戶經常刪除 Cookie 信息,這樣,利用 Cookie 信息來識別用戶的可靠性并不高。所以我們還是采用注冊 /登陸的方式來識別用戶。 新 用 戶 注 冊 時 需 要 填 入 的 是 UserName( 用戶名 ),Password( 密碼 ),ConfirmPassword(效驗密碼 )三個信息。當用 戶點擊“ OK”按鈕或按回車后,服務器將判斷用戶填入信息是否完整、該 UserName 是否有人使用以及 Password與 ConfirmPassword 是否相同,若輸入無誤則將新用戶資料加入 UserInfo 表,生成該用戶的 Behavior 表 。整個處理注冊的過程由名為 的 程序實現(xiàn)。 UserInfo 表是系統(tǒng)事先生成的用于保存各用戶資料的表。它的格 如下所示: 表 UserInfo 表 UserName UserID Password test 1 test lilei 2 abcd ?? ?? ?? 其中, UserName 字段設置為系統(tǒng)自動生成的遞增的整數(shù),用于標識一個用戶。因為以后將頻繁地用到它,所以將 UserName 保存在用戶的 Session 中,命名為 Session(UserName)。 用戶的 Behavior 表 用于記錄一個用戶的點擊序列,其名稱形式為UserName+“ _Behavior” ,例如: Test__Behavior。表格式如下所示: 表 Test_Behavior 表 BehaviorID ClickID TopicName 1 1 News 1 2 Papers 1 3 Publications 2 1 Papers 2 2 Papers of 1999 ?? ?? ?? 其中, BehaviorID 表示用戶第幾次上站, ClickID 表示用戶一次上站過程中第幾次點擊, TopicName 為點擊的主題。當然,用戶注冊時生成的是空表。 生成用戶 Behavior 表的語句為: string sql = create table + TableName。 sql += (BehaviorID int not null,。 sql += ClickID smallint not null, 。 sql += Topic varchar(250) ,。 sql += Title varchar(250) )。 oleDbCommand mcmd = new oleDbCommand( )。 = Application[g_dbConnection]。 = sql。 ()。 其中,先定義 SQL 語句字符串 sql , 再 通 過 數(shù) 據庫 鏈 接 對 象application(g_dbConnection)的 ExecuteNonQuery 方法執(zhí)行該 SQL 語句。本文中均采用此方法進行數(shù)據庫操作。 已經注冊的用戶登陸時只須輸入 UserName 和 Password,系統(tǒng)根據UserName 查找 UserInfo 數(shù)據表,將查找到的 Password 與用戶輸入 Password 比較,若相同則做相關初始化操作,允許用戶進入網站,否則給出提示信息。這些過程由 程序 實現(xiàn)。 初始化操作包括 查找用戶的 UserName 和設置此次行為的 BehaviorID 值。其中,設置 BehaviorID 的過程如下: string sql = select BehaviorID from + UserName + _Behavior + order by BehaviorID DESC。 oleDbCommand mcmd = new oleDbCommand( )。 = Application[g_dbConnection]。 = sql。 ()。 object objResult = ()。 if (objResult == null) { Session[BehaviorID] = 1。 } else { Session[BehaviorID] = (objResult) + 1。 } 其含義為:在用戶的 Behavior 表中查找所有 BehaviorID,并以降序排列,這樣 , ExecuteScalar()返回的第一行第一列 objResult 就是 用戶該用戶以前最后一次訪問系統(tǒng)的 BehaviorID;如果 objResult=null 則表示用戶第一次上站,設 BehaviorID 為 1,否則將( objResult+1)作為本次登陸的 BehaviorID,并保存到用戶 Session 中。這樣便能保證 BehaviorID 隨著用戶上站次數(shù)而遞增。 注冊和登陸過程中所進行的數(shù)據庫操作都利用了 Application(g_dbConnection)鏈接對象,通過型如 () 和 () 的語句查詢數(shù)據或插入數(shù)據。 記錄用戶點擊序列 我們采用記錄用戶上站后的點擊序列來跟蹤用戶的訪問情況。怎樣才能讓服務器得知用戶點擊了哪一個鏈接呢,普通的鏈接只能直接引導用戶瀏覽器至另一 Web 頁面,不能對用戶點擊的鏈
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1