




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章JavaScript本章講述的主要內容7.1JavaScript的基本概念7.2JavaScript程序設計基礎7.3JavaScript對象7.4BOM和DOM對象7.5實訓設計浮動圖片效果
7.1JavaScript的基本概念7.1.1JavaScript概述JavaScript是一種通用的、跨平臺的、基于對象和事件驅動的客戶端腳本語言,其主要特點有以下幾個方面。(1)弱數據類型(2)跨平臺(3)基于對象Transformations,擴展樣式表轉換)進行數據交換及操作。(4)基于事件驅動7.1JavaScript的基本概念7.1.1JavaScript概述JavaScript代碼格式不夠嚴謹,使用比較靈活,但過于隨意將會導致代碼的可讀性降低,不易于后期維護和升級。因此,在編寫JavaScript程序時應遵守以下規范。①書寫代碼時應注意,瀏覽器解析JavaScript代碼時會忽略標識符與運算符之間多余的空格。②書寫代碼時每條語句一般應獨占一行,并以英文分號“;”為結束符。③代碼要使用縮進格式編寫,以增強其層次感和可讀性。④代碼中可以使用“//”表示單行注釋,使用“/*……*/”表示多行注釋。7.1JavaScript的基本概念7.1.2JavaScript的代碼編寫規范行內JavaScript語句
直接將JavaScript代碼寫在HTML元素的開始標記中。(2)嵌入式JavaScript語句塊
將JavaScript代碼寫在<script>……</script>中。(3)使用獨立的.js文件7.2JavaScript程序設計基礎7.2.1數據類型和變量1.數據類型7.2JavaScript程序設計基礎7.2.1數據類型和變量2.變量和運算符聲明變量和為變量賦值(2)運算符JavaScript使用的運算符與C#語言的運算符大部分相同。如,算術運算符+、-、*、/;比較運算符<、>、==、>=、<=、!=;布爾運算符&&、||、!等。7.2JavaScript程序設計基礎7.2.1數據類型和變量3.變量的作用域變量的作用范圍是指可以訪問該變量的代碼區域。JavaScript中按變量的作用范圍分為全局變量和局部變量。①全局變量:可以在整個HTML文檔范圍中使用的變量,這種變量通常都是在函數體外定義的變量。②局部變量:只能在局部范圍內使用的變量,這種變量通常都是在函數體內定義的變量,所以只在函數體內部有效。省略關鍵字var聲明的變量(未定義直接使用的變量),無論在函數體內部還是外部,都是全局變量。7.2JavaScript程序設計基礎7.2.2流程控制語句1.分支結構
if…elseif…else、switch語句2.循環結構JavaScript的循環結構主要由for語句、while語句和forin語句構成。其中,for語句和while語句與C#中的語法格式及使用方法完全相同,這里不再贅述。C#中的foreach語句在JavaScript中稍有變化,其語法格式如下所示。7.2JavaScript程序設計基礎7.2.3JavaScript函數JavaScript內置函數7.2JavaScript程序設計基礎7.2.3JavaScript函數2.自定義函數JavaScript除了可以使用預定義函數外,還可以根據需要自定義用于實現特定功能的函數。由于JavaScript是弱類型腳本程序設計語言,故在定義函數時無需聲明函數的參數類型和返回值類型。JavaScript的自定義函數分為命名函數、匿名函數、對象函數和自調用函數四種。自定義函數代碼可以書寫在<script></script>標記之間,也可以書寫在.js文件中。在同一個<script></script>標記中,函數定義可以書寫在調用語句之前或之后;但在不同的<script></script>標記中函數定義語句只能書寫在調用語句之前。7.2JavaScript程序設計基礎7.2.3JavaScript函數2.自定義函數(1)命名函數7.2JavaScript程序設計基礎7.2.3JavaScript函數2.自定義函數
(2)匿名函數7.2JavaScript程序設計基礎7.2.3JavaScript函數2.自定義函數
(3)自調用函數
JavaScript函數除了可以被其它語句或事件調用外,也允許將函數的定義與調用一并實現,這種函數稱為“自調用函數”。7.3JavaScript對象7.3.1JavaScript內置對象
1.Array對象JavaScript的Array數組對象與C#不同的是它在聲明時無需指定數據類型,而且可以將不同類型的數據存放到同一數組中。Array對象的常用屬性是length,用于獲取數組中元素的個數。
Array對象的常用方法有concat、join、push、slice、sort和reverse。7.3JavaScript對象7.3.1JavaScript內置對象
2.String對象可以使用以下2種方法創建String字符串對象。String對象的常用方法見表7-3。7.3JavaScript對象7.3.1JavaScript內置對象
3.Date對象
需要說明的是,起點時間“1970年1月1日零時”指GMT(格林威治時間),精確計算時間時起點的時分秒還要加上當前所在的時區。北京時間的時區為東8區,起點時間實際為:“1970/01/0108:00:00”。
Date對象的常用方法
見表7-47.3JavaScript對象7.3.1JavaScript內置對象
4.Math對象
Math對象中包含有一些數學常量(稱為Math對象的屬性)和一些數學函數方法。
常用屬性見表7-5
常用方法見表7-67.3JavaScript對象7.3.2自定義對象
在JavaScript中可以根據實際需要通過JSON方式或構造函數方式創建用戶自定義對象。JSON(JavaScriptObjectNotation,JavaScript對象符號)是一種基于JavaScript的輕量級數據交換格式。1.使用JSON方式創建自定義對象7.3JavaScript對象7.3.2自定義對象
2.使用構造函數方式創建自定義對象7.4BOM和DOM對象BOM對象的主要層次關系7.4BOM和DOM對象7.4.1Window對象
1.window對象的常用屬性7.4BOM和DOM對象7.4.1Window對象
2.window對象的常用方法參閱源代碼:ex7-37.4BOM和DOM對象7.4.2document對象
BOM中document對象及所屬下級對象構成了DOM對象,它也是使用JavaScript操作網頁的最常用部分。1.Document對象的常用屬性7.4BOM和DOM對象7.4.2document對象2.Document對象的常用方法參閱源代碼:ex7-4、ex7-57.5實訓設計浮動圖片效果7.5.1實訓目的
①通過上機操作熟練掌握通過document對象操作HTML元素的基本方法,熟練掌握通過樣式設置控制HTML元素外觀的基本方法。②通過閱讀、錄入代碼,試運行程序,加深理解本實訓功能實現的編程思路。通過按要求獨立完成對程序功能的擴展,掌握通過Internet解決學習中遇到問題的方法,進一步提高代碼閱讀能力。7.5.2實訓要求第8章使用jQuery本章講述的主要內容8.1jQuery概述8.2jQuery語法基礎8.3通過jQuery操作DOM8.4實訓
使用jQuery特效
8.1jQuery概述
jQuery是一個快速的,簡潔的JavaScript庫,它使用戶能更方便地處理DOM(DocumentObjectModel,文檔對象模型)、Events(事件)、實現動畫效果等,并且能方便地為網站提供Ajax交互。
概括的說,jQuery是基于JavaScript語言的框架編程,根據實際應用中的常見需求對JavaScript的功能進行了封裝,提供函數接口,簡化了JavaScript的操作,提倡“以更少的代碼,做更多的事情”(WriteLess,DoMore)。8.1jQuery概述8.1.1使用NuGet
NuGet是VS中默認的添加第三方庫的方法,使用NuGet不但可以向項目中添加jQuery,也可以添加其它一些第三方庫。8.1jQuery概述8.1.2在.aspx和.html中引用jQuery通過NuGet將jQuery添加到網站后,還需要在希望使用jQuery功能的.aspx或.html頁面中添加相關引用語句。其語法格式與向頁面中添加普通.js文件引用完全相同。
例如:8.2jQuery語法基礎8.2.1jQuery代碼的書寫位置要求1.使用ready()函數ready()的函數可以將包括在其中的代碼推遲至DOM對象加載完畢再執行。8.2jQuery語法基礎8.2.1jQuery代碼的書寫位置要求2.在引用了母版頁的內容中書寫jQuery代碼①如果使用該母版頁的所有或絕大多數內容頁都需要使用jQuery,則可將jQuery引用語句書寫在母版頁的<head>和</head>之間。將jQuery功能實現代碼書寫在內容頁的<asp:ContentID="Content2"……>和</asp:Content>標記區域的最下方。②使用該母版頁的內容頁中只有個別內容頁需要使用jQuery,則可將引用語句書寫在內容頁的asp:ContentID="Content1"……>和</asp:Content>標記之間。將jQuery功能實現代碼書寫在內容頁的<asp:ContentID="Content2"……>和</asp:Content>標記區域的最下方。8.2jQuery語法基礎8.2.2jQuery選擇器基本選擇器(1)通用選擇器:通用選擇器$(*)用于返回頁面中所有元素。(2)元素選擇器:元素選擇器$("元素名")用于返回指定類型的所有元素。(3)ID選擇器:ID選擇器$("#元素ID")用于返回指定元素ID值代表的單一元素。(4)類選擇器:類選擇器$(".類名稱")用于返回使用指定類名稱的所有元素。(5)組合選擇器:組合選擇器可以將多種選擇器組合在一起,返回所有符合條件的元素。8.2jQuery語法基礎8.2.2jQuery選擇器3.過濾選擇器使用過濾選擇器可以按照預設過濾規則(條件)篩選出所需要的頁面元素。參閱源代碼:ex8-28.3通過jQuery操作DOM8.3.1屬性操作attr()和removeAttr()方法
attr()方法用于獲取所匹配元素集合中第一個元素的屬性,也可以用來設置所匹配元素的一個或多個屬性值,attr()方法有如下所示的4種語法格式。8.3通過jQuery操作DOM8.3.1屬性操作2.prop()和removeProp()方法prop()方法用于獲取所匹配元素集合中第一個元素的屬性,也可以用來設置所匹配元素的一個或多個屬性值。
參閱源代碼:ex8-38.3通過jQuery操作DOM8.3.2樣式操作jQuery提供了一些用于控制、修改頁面元素外觀樣式的方法,如addClass()、removeClass()、toggleClass()和前面使用過的css()方法。此外,使用上節介紹的attr()方法,也可以實現對元素外觀的控制和修改。1.addClass()和removeClass()方法8.3通過jQuery操作DOM8.3.2樣式操作2.toggleClass()方法
toggleClass()方法用于實現元素樣式的添加或移除。當元素的指定樣式存在時,移除該樣式,否則添加該樣式。
toggleClass(classname);
其中,classname表示css類名,toggleClass()方法被調用時首先判斷指定的CSS類是否已被應用,若是則移除,否則應用該CSS類。8.3通過jQuery操作DOM8.3.2樣式操作3.css()方法
css()方法是jQuery1.9以上版本新增內容,用于獲取或設置匹配元素的CSS樣式,其語法格式有如下4種形式。參閱源代碼:ex8-48.3通過jQuery操作DOM8.3.3內容操作內容操作是指使用jQuery提供的方法獲取或修改元素或表單的內容。jQuery常用的內容操作方法有,html()、text()和val()方法。1.html()方法html()方法用于獲取或設置第一個匹配元素的HTML內容,該方法僅對HTML和XHTML文檔有效,不能用于XML文檔。8.3通過jQuery操作DOM8.3.3內容操作2.text()方法text()方法用于讀取或設置匹配元素的文本內容,其語法格式及使用方法與html()方法相同。
text()方法與html()方法的區別在于,text()方法只能返回或設置匹配元素的純文本內容,不能包含HTML標記。3.val()方法
val()方法用于獲取或設置表單元素的值,包括文本框、下拉列表框、單選和復選框等元素。當元素允許多選時,返回一個包含被選項的數組。
參閱源代碼:ex8-58.3通過jQuery操作DOM8.3.4jQuery常用特效方法show()和hide()方法show()方法和hide()方法可以通過遞增或遞減元素的width、height和opacity(透明度)屬性值實現元素的顯示和隱藏,其語法格式如下所示。8.3通過jQuery操作DOM8.3.4jQuery常用特效方法2.slideDown()、slideUp()和slideToggle()方法
slideDown()和slideUp()方法,以向下或向上滑動的動畫效果隱藏或顯示匹配的元素。這樣的動畫效果實際上是通過改變匹配元素的height屬性值來實現的。slideToggle()方法可將匹配元素隱藏的顯示出來,將顯示的隱藏起來。8.3通過jQuery操作DOM8.3.4jQuery常用特效方法3.fadeIn()、fadeOut()和fadeTo()方法
fadeIn()、fadeOut()和fadeTo()方法通過修改匹配元素的不透明度來顯示或隱藏它們。
fadeOut()方法將不透明度設置為0,使元素完全透明,然后將CSSdisplay屬性設置為“none”來實現完全隱藏元素;
fadeTo()方法允許指定一個0到1之間的不透明度值,來控制元素的透明程度;fadeIn()與fadeOut()相反,它將匹配元素的不透明度設置為1,使元素完全不透明(正常顯示)。8.3通過jQuery操作DOM8.3.4jQuery常用特效方法4.animate()方法animate()方法是一個功能強大的動畫效果設計方法,它可以在動畫實現的過程中指定眾多完善動畫效果的屬性。8.3通過jQuery操作DOM8.3.5jQuery事件處理和事件綁定“事件處理”是指某一時刻頁面元素對某種由系統或用戶引發的操作的響應及處理,是系統與用戶進行交換的主要途徑。如,前面已經使用過的頁面加載、按鈕被單擊、文本框得到或失去焦點等事件發生時,自動調用對應的函數。jQuery中的事件處理是在JavaScript的基礎上擴充、完善而構成的,功能更加強大,使用更加便利。所謂“事件綁定”是指將頁面元素的事件類型與事件處理函數關聯起來。當事件觸發時調用事先綁定的函數進行處理。在JavaScript中通常采用在元素標記中添加屬性的方式綁定事件處理函數8.3通過jQuery操作DOM8.3.5jQuery事件處理和事件綁定1.on()方法on()方法用于將事件處理函數綁定到元素的某個事件,其語法格式如下所示。對于常用事件(如,click、mouseover、mouseout等)jQuery允許省略on關鍵字,將事件綁定代碼簡化為類似如下的形式。8.3通過jQuery操作DOM8.3.5jQuery事件處理和事件綁定2.one()方法one()方法用于將元素的某個事件綁定到一個一次性(只被執行一次)的事件處理函數。3.hover()方法hover()方法用于處理鼠標指向事件。當鼠標指針進入元素區域時觸發第一個函數,離開時觸發第二個函數,第二個函數為可選項,省略時表示鼠標離開時不執行任何操作。8.4實訓使用jQuery特效8.4.1實訓目的通過實訓進一步理解使用jQuery實現頁面效果的常用方法和手段;掌握通過jQuery處理客戶端事件的代碼編寫方法。8.4.2實訓要求
在.aspx頁面中設計一個用于顯示職工信息的HTML表格,初次打開頁面時顯示圖8-10所示的奇偶行背景色不同的效果。
當用戶通過單擊行首單選按鈕選擇某行時,單選按鈕呈選中狀態,選中行的文本和背景色也呈高亮色顯示,如圖8-11所示。
如果用戶單擊了表格中某行而未單擊單選按鈕,則只改變該行文本和背景色呈高亮色顯示,不改變該行單選按鈕的狀態。第9章數據庫基礎和數據訪問控件本章講述的主要內容9.1使用數據庫系統9.2使用數據控件訪問數據庫9.3實訓使用數據訪問控件查詢數據庫
9.1使用數據庫系統9.1.1創建MicrosoftSQLSever數據庫在VS2015中內置了SQLServer2014ExpressLocalDB版(安裝升級包后,可自動更新為LocalDB2016),LocalDB是SQLServerExpress的一種運行模式,也可以理解為超輕量級的SQLServer,特別適合在開發環境使用。1.新建數據庫和數據表在VisualStudio中提供了一個簡單的,操作遠程SQLServer數據庫的“服務器資源管理器”。
9.1使用數據庫系統9.1.1創建MicrosoftSQLSever數據庫1.新建數據庫和數據表
新建數據庫9.1使用數據庫系統9.1.1創建MicrosoftSQLSever數據庫1.新建數據庫和數據表
新建表9.1使用數據庫系統9.1.1創建MicrosoftSQLSever數據庫2.SQLServer中常用數據類型
(1)char(n)(2)varchar(n)(3)text和varchar(MAX)(4)int(5)real和float(6)datetime9.1使用數據庫系統9.1.2常用SQL語句1.查詢語句(Select)SELECT語句主要用于從數據庫中返回需要的數據集,其語法格式為:SELECTselect_list[INTOnew_table_name]FROMtable_list[WHEREsearch_conditions][GROUPBYgroup_by_list][HAVINGsearch_conditions][ORDERBYorder_list[ASC|DESC]]9.1使用數據庫系統9.1.2常用SQL語句2.插入記錄語句(Insert)
使用Insert語句可以向表中插入記錄,該語句的語法格式為:INSERTINTO表名稱(字段名)VALUE(字段值)3.修改記錄語句(Update)使用Update語句可更新(修改)表中的數據,其語法格式為:UPDATE表名稱SET字段名=值WHERE條件4.刪除記錄語句(Delete)使用DELETE語句可以刪除數據表中指定行,其語法格式為:DELETEFROM表名稱WHERE條件9.1使用數據庫系統9.1.3MicrosoftSQLServer常用操作1.創建存儲過程9.1使用數據庫系統9.1.3MicrosoftSQLServer常用操作2.分離和附加數據庫(1)分離數據庫
9.1使用數據庫系統9.1.3MicrosoftSQLServer常用操作3.分離和附加數據庫(2)附加數據庫首先需要將從其他計算機分離復制過來或從Internet中下載的數據庫文件復制到安裝有SQLServerExpressLocalDB的計算機中(通常需要復制到網站下的App_Data文件夾中)。啟動VS,在服務器資源管理器中右鍵單擊“數據連接”,在彈出的快捷菜單中執行“新建連接”命令,按向導提示即可完成操作。9.1
使用數據庫系統9.1.4
MicrosoftAccess
Access數據庫管理系統是MicrosoftOffice的一個組件,是最常用的本地數據庫之一。在C#中可以方便地使用數據庫對象,操作Access數據庫。
1.創建數據庫
2.創建數據表9.2使用數據控件訪問數據庫9.2.1使用數據源控件1.AccessDataSource
AccessDataSource數據源控件是專門為連接Access數據庫而設計的。2.SqlDataSource
SqlDataSource數據源控件是專門為連接MicrosoftSQLServer數據庫而設計的。使用SqlDataSource控件還能建立與Oracle、ODBC、OLEDB、等數據庫的連接,并對這些數據庫執行查詢、插入、編輯或刪除操作。3.LinqDataSource4.XmlDataSource5.SiteMapDataSource9.2使用數據控件訪問數據庫9.2.2使用GridView控件
GridView控件用于配合數據源控件實現對數據庫進行瀏覽、編輯、刪除等操作。數據源控件主要包括用于連接Access數據庫的AccessDataSource和用于連接SQLServer數據庫的SqlDataSource。1.添加數據源控件2.添加GridView控件3.設置GridView控件的屬性參閱源代碼:ex9-19.2使用數據控件訪問數據庫9.2.3
使用FormView數據控件
FormView控件與前面介紹過的GridView控件相似,也是用于瀏覽或操作數據庫的數據控件。它與GridView相比主要的不同在于顯示在FormView中的數據記錄是分頁的,即每頁只顯示一條記錄。9.2使用數據控件訪問數據庫9.2.3
使用FormView數據控件9.2
使用數據控件訪問數據庫9.2.4
使用Repeater控件
Repeater控件是一個數據綁定列表控件(數據瀏覽控件),它允許通過為列表中顯示的每一項重復指定的模板來自定義數據顯示布局。Repeater控件是一個基本模板數據綁定列表,它并沒有內置的布局或樣式,因此必須在這個控件的模板內顯式聲明所有的HTML布局標記、格式設置及樣式標記等。也正因為此,Repeater控件具有更好的靈活性,但該控件沒有內置的選擇和編輯功能。Repeater控件的模板2.使用Repeater控件
參閱源代碼:ex9-39.2
使用數據控件訪問數據庫9.2.5
使用DetailsView控件
DetailsView控件顧名思義是用于查看細節信息的控件,其作用主要是根據用戶在父表中項的選擇,在DetailView控件中顯示子表的信息。
1.使用DetailsView控件查看子表信息
2.使用DetailsView控件操作SQLServer數據庫
9.3實訓使用數據訪問控件查詢數據庫9.3.1實訓目的①通過上機操作熟練掌握GridView控件配合SqlDataSource控件操作數據庫的基本方法。理解GridView控件的常用屬性、事件和方法。②掌握在SqlDataSource控件設置中直接使用SQL語句和LIKE運算符的技巧。理解設置GridView控件外觀的基本技巧。9.3.2實訓要求設計一個ASP.NET網站,要求使用SQLServer數據庫,配合GridView控件、SqlDataSource控件實現對數據記錄的多功能查詢。頁面裝入時顯示圖9-36所示的界面,其中顯示有當前數據表中所有記錄,并添加有一個“總分”計算字段。用戶單擊標題欄中字段名時,可按該字段進行排序。數據庫結構和數據記錄可根據圖示自行設計。第10章使用ADO.NET訪問數據庫本章講述的主要內容10.1ADO.NET概述10.2數據庫連接對象(Connection)10.3數據庫命令對象(Command)10.4ExecuteReader()方法和DataReader對象10.5數據適配器對象(DataAdapter)10.6DataSet概述10.7使用DataSet對象訪問數據庫10.8實訓設計一個課程表管理程序10.1ADO.NET概述10.1.1ADO.NET的數據模型
ADO.NET采用了層次管理的結構模型,各部分之間的邏輯關系如下圖所示。10.1ADO.NET概述10.1.2ADO.NET中的常用對象
在ADO.NET中數據集與數據提供器是兩個非常重要,而又相互關聯的核心組件。它們二者之間的關系如下圖所示。10.2數據庫連接對象(Connection)10.2.2創建Connection對象
SqlConnection
連接對象名=newSqlConnection(連接字符串);或:
SqlConnection
連接對象名=newSqlConnection();
連接對象名.ConnectionString=連接字符串;
10.2數據庫連接對象(Connection)10.2.2數據庫的連接字符串1.連接字符串中的常用屬性10.2數據庫連接對象(Connection)10.2.2數據庫的連接字符串2.連接到SQL
Server的連接字符串標準連接(2)信任連接10.2數據庫連接對象(Connection)10.2.2數據庫的連接字符串3.連接到OLEDB數據源的連接字符串(以連接Access數據庫為例)連接到Access2003數據庫:連接到Access2007/2010數據庫:10.2數據庫連接對象(Connection)10.2.2數據庫的連接字符串4.連接字符串的存放位置(1)把連接字符串寫在程序中一般的初級教程多采用這種方法。這樣寫當然沒有錯誤,但是要在許多頁面中寫入連接字符串,這時候如果需要改動連接字符串(比如換用戶名和密碼)的話,就得逐個修改。(2)把連接字符串放在web.config文件中10.3數據庫命令對象(Command)10.3.1創建Command對象1.使用構造函數創建Command對象
下面是使用構造函數創建SqlCommand對象,并通過該對象的構造函數參數來設置特定屬性值,其語法格式如下:SqlCommand
命令對象名=newSqlCommand(查詢字符串,連接對象名);或SqlCommand
命令對象名=newSqlCommand();命令對象名.Connection=連接對象名;命令對象名.CommandText=查詢字符串;10.3數據庫命令對象(Command)10.3.1創建Command對象2.使用CreateCommand()方法創建Command對象下面是使用Connection對象的CreateCommand()方法創建SqlCommand對象的語法格式:SqlCommandCommand對象名=Connection對象名.CreateCommand();Command對象名.CommandText=查詢字符串;10.3數據庫命令對象(Command)10.3.2Command對象的屬性和方法常用屬性
10.3數據庫命令對象(Command)10.3.2Command對象的屬性和方法常用方法10.4ExecuteReader()方法和DataReader對象10.4.1使用ExecuteReader()方法創建DataReader對象10.4ExecuteReader()方法和DataReader對象10.4.2DataReader對象的常用屬性及方法1)FieldCount屬性:該屬性用來獲取當前行中的列數,如果未放置在有效的記錄集中,則返回0,否則返回列數(字段數),默認值為-1。2)HasRows屬性:用來獲取DataReader對象中是否包含任何行。3)Read()方法:使用該方法可將Reader指向當前記錄,并將記錄指針移到下一行,從而可使用列名或列的次序來訪問列的值。如果到了數據表的最后,則返回一個布爾值false。4)GetValue()方法:5)GetValues()方法:6)NextResult()方法:7)Close()方法:參閱源代碼:ex10-310.5數據適配器對象(DataAdapter)10.5.1DataAdapter對象概述DataAdapter對象是一個雙向通道,用來把數據從數據源中讀到一個內存表中,以及把內存中的數據寫回到一個數據源中。兩種情況下使用的數據源可能相同,也可能不相同。而這兩種操作分別稱作填充(Fill)和更新(Update)。DataAdapter對象通過Fill方法和Update方法來提供這一橋接器。10.5數據適配器對象(DataAdapter)10.5.2DataAdapter對象的屬性和方法常用的創建SqlDataAdapter對象的語法格式如下所示:SqlDataAdapter
對象名=newSqlDataAdapter(SqlStr,conn);其中SqlStr為Select查詢語句或SqlCommand對象,conn為SqlConnection對象。10.5數據適配器對象(DataAdapter)10.5.2DataAdapter對象的屬性和方法1.DataAdapter對象的常用屬性
DataAdapter對象的常用屬性見下表10.5數據適配器對象(DataAdapter)10.5.2DataAdapter對象的屬性和方法2.DataAdapter對象的常用方法
DataAdapter對象的常用方法見下表10.5數據適配器對象(DataAdapter)10.5.3DataTable對象DataTable對象是內存中一個關系數據庫表,可以獨立創建也可以由DataAdapter來填充。聲明一個DataTable對象的語法格式如下所示:
DataTable
對象名=newDataTable();
一個DataTable對象創建后,通常需要調用DataAdapter的Fill()對其進行填充,使DataTable對象獲得具體的數據集,而不再是一個空表對象。10.5數據適配器對象(DataAdapter)10.5.3DataTable對象1.創建DataTable對象在實際應用中使用DataTable對象一般需要經過以下幾個步驟:①創建數據庫連接。②創建Select查詢語句或Command對象。③創建DataAdapter對象。④創建DataTable對象。⑤調用DataAdapter對象的Fill()方法填充DataTable對象。10.5數據適配器對象(DataAdapter)10.5.3DataAdapter對象的屬性和方法2.DataTable對象的常用屬性
Columns屬性:該屬性用于獲取DataTable對象中表的列集合。
Rows屬性:該屬性用于獲取DataTable對象中表的行集合。
DefaultView屬性:該屬性用于獲取可能包括篩選視圖或游標位置的表的自定義視圖。10.6DataSet概述
DataSet(數據集)對象是ADO.NET的核心構件之一,它是數據的內存流表示形式,提供了獨立于數據源的關系編程模型。DataSet表示整個數據集,其中包括有表、約束和表與表之間的關系。由于DataSet獨立于數據源,故其中可以包含應用程序的本地數據,也可以包含來自多個數據源的數據。這是DataSet與前面介紹的DataTable的關鍵不同。
DataSet提供了對數據庫的斷開操作模式(也稱為離線操作模式),當DataSet從數據源獲取數據后就斷開了與數據源之間的連接。在本地完成了各項數據操作(增、刪、改、查等)后,可以將DataSet中的數據送回到數據源以更新數據庫記錄。10.6DataSet概述10.6.1DataSet與DataAdapter
DataSet是實現ADO.NET斷開式連接的核心,它通過DataAdapter從數據源獲得數據后就斷開了與數據源之間的連接(這一點與前面介紹過的DataReader對象完全不同),此后應用程序所有對數據源的操作(定義約束和關系、添加、刪除、修改、查詢、排序、統計等)均轉向到DataSet,當所有這些操作完成后可以通過DataAdapter提供的數據源更新方法將修改后的數據寫入數據庫。需要說明的是對于不同的數據源DataAdapter對象也有不同的形式,如用于連接Access數據庫的OleDbDataAdapter,用于連接SQLServer數據庫的SQLDataAdapter、用于連接ODBC數據源的OdbcDataAdapter、用于連接Oracle數據庫的OracleDataAdapter等。10.6DataSet概述10.6.2DataSet的組成
10.6DataSet概述10.6.3DataSet中的對象、屬性和方法1.DataSet中的對象
DataSet由大量相關的數據結構組成,其中最常用的有如下5個子對象,其名稱及功能說明見下表。10.6DataSet概述10.6.3DataSet中的對象、屬性和方法2.DataSet對象的常用屬性
DataSet對象的常用屬性見下表。10.6DataSet概述10.6.3DataSet中的對象、屬性和方法3.DataSet對象的常用方法
DataSet對象的常用方法見下表。10.7使用DataSet訪問數據庫10.7.1創建DataSet創建數據集對象的語法格式為:DataSet
數據集對象名=newDataSet();或:DataSet
數據集對象名=newDataSet("表名");10.7使用DataSet訪問數據庫10.7.2填充DataSet所謂“填充”是指將DataAdapter對象通過執行SQL語句從數據源得到的返回結果,使用DataAdapter對象的Fill方法傳遞給DataSet對象。其常用語法格式如下所示:Adapter.Fill(ds);或:Adapter.Fill(ds,tablename);
10.7使用DataSet訪問數據庫10.7.3添加新記錄通過DataSet向數據表添加新記錄的一般方法如下:1)建立與數據庫的連接。2)通過DataAdapter對象從數據庫中取出需要的數據。3)實例化一個SqlCommandBuilder類對象,并為DataAdapter自動生成更新命令。4)使用DataAdapter對象的Fill方法填充DataSet。5)使用NewRow()方法向DataSet中填充的表對象中添加一個新行。6)為新行中各字段賦值7)將新行添加到DataSet中填充的表對象中。8)調用DataAdapter對象的Update()方法將數據保存到數據庫。10.7使用DataSet訪問數據庫10.7.4修改記錄通過DataSet修改現有數據表記錄的操作方法與添加新記錄非常相似,唯一不同的地方是無需使用NewRow()添加新行,而是創建一個DataRow對象后,從表對象中獲得需要修改的行并賦給新建的DataRow對象,根據需要修改各列的值(為各字段賦以新值)。最后仍需要調用DataAdapter對象的Update()方法將更新提交到數據庫。10.7使用DataSet訪問數據庫10.7.5刪除記錄
使用DataSet從填充的表對象中刪除行時需要創建一個DataRow對象,并將要刪除的行賦值給該對象,而后調用DataRow對象的Delete()方法將該行刪除。當然此時的刪除僅是針對DataSet對象的,若需從數據庫中刪除該行,還需要調用DataAdapter對象的Update()方法將刪除操作提交到數據庫。10.8實訓設計一個課程表管理程序10.8.1實訓目的①通過本實訓進一步理解使用DataSet配合DataAdapter和DataReader對象完成數據庫常規操作的一般步驟。②掌握ASP.NET標準控件的基本使用方法和常用屬性。③本實訓除應用到了DataSet、DataAdapter、DataReader等ADO.NET對象外,還涉及了許多SQL查詢語句和通過ASP.NET內置對象,在不同頁面間傳遞數據的技巧,這些都是開發Web數據庫應用程序的基本手段,要求在實訓中認真理解其含義及語句書寫格式。10.8.2實訓要求在ASP.NET環境中使用DataSet配合DataAdapter對象,創建一個簡單的學校課程表管理程序。第11章LINQtoSQL數據庫操作本章講述的主要內容11.1LINQ的概念11.2使用LinqDataSource控件11.3使用LINQtoSQL的對象和方法11.4實訓使用LINQtoSQL操作數據庫
11.1LINQ的概念11.1.1LINQ的構成LINQ的組成架構如圖所示。11.1LINQ的概念11.1.2與LINQ相關的幾個概念1.匿名類型“匿名類型”也稱為“隱式類型”或“推斷類型”,如果在程序中需要使用到臨時類型,而又不希望去創建相應的類時,可以考慮使用匿名類型。匿名類型使用var關鍵字進行聲明。例如:var
stuinfo=new{StuName="張三",StuID="2009000234",StuAge=20};11.1LINQ的概念11.1.2與LINQ相關的幾個概念2.泛型要使用泛型需要引入System.Collections.Generic命名空間。例如,下列語句聲明并初始化了一個名為MyGeneric,用于表述一個字符串列表的泛型集合。List<string>MyGeneric=newLinst<string>;MyGeneric.Add("zhangsan");MyGeneric.Add("2009000234");MyGeneric.Add("工程機械0901");在VisualStudio2008中可以將上述代碼簡化為如下所示:List<string>MyGeneric=newLinst<string>{"zhangsan","2016000234","工程機械1601"};11.1LINQ的概念11.1.2與LINQ相關的幾個概念3.擴展方法使用擴展方法可以為一些現有的類增加某種特定的功能。也就是向一個現有的類中添加新的靜態方法(注意必須是靜態的)。創建擴展方法的語法格式如下所示:publicstaticclass靜態類名稱{publicstatic返回值類型方法名稱(this作用類型形參1[,形參2]……){擴展方法的方法體語句}}11.1LINQ的概念11.1.2與LINQ相關的幾個概念4.Lambda表達式
Lambda表達式是.NETFramework3.5的一個新特性,它提供了一種極為簡潔的定義方法的方式。它是從.NETFramework1.0中的“委托”和.NETFramework2.0中的“匿名方法”過渡而來的。(1)委托:委托實際上是一個函數指針,將問題的處理指向一個方法。(2)匿名方法:在實際應用中被調用方法的具體名稱無關緊要,關鍵是方法體的返回值。所以在.NETFramework2.0中引入了“匿名方法”的概念。如下列代碼所示,使用匿名方法無需首先創建方法,而是將方法體語句直接書寫到委托實例化語句中,并用大括號將其括起來
11.1LINQ的概念11.1.2與LINQ相關的幾個概念4.Lambda表達式
(3)過渡到Lambda表達式
Lambda表達式是一個匿名函數,它可以包含表達式和語句塊。可用于創建委托或表達式目錄樹類型。所有Lambda表達式都使用Lambda運算符“=>”,該運算符讀為“goesto”。該運算符的左邊是輸入參數(如果有的話),右邊包含表達式或語句塊。11.1LINQ的概念11.1.2與LINQ相關的幾個概念5.對象關系設計器對象關系設計器也稱為O/R設計器,用來自動生成與數據庫表對應的DataConText類。DataConText類是LINQtoSQL框架的主入口點,所有實體對象與關系型數據庫中數據的轉換就是依靠DataConText類來完成的。創建DataConText類可以通過手工的方法,也可以使用O/R設計器自動完成。當我們向ASP.NET網站中添加一個“LINQtoSQL類”時,系統將自動打開O/R設計器。從服務器資源管理器窗口中,將數據庫表、存儲過程等拖動到O/R設計器中,即可自動生成需要的DataConText類或方法。11.2使用LinqDataSource控件11.2.1創建DataContext類5.對象關系設計器1)添加一個LINQtoSQL類的新項2)屏幕自動切換到O/R設計器窗口3)數據表從服務器資源管理器中拖動到O/R設計器的左窗格11.2使用LinqDataSource控件11.2.2配置LinqDataSource使用LinqDataSource配置向導。11.2使用LinqDataSource控件11.2.3LinqDataSource控件使用示例本節將以一個實例說明使用LinqDataSource控件配合FormView控件現實常規數據庫操作的方法。
參閱源代碼:ex11-211.3使用LINQtoSQL的對象和方法11.3.1返回數據表中的全部記錄(select語句)1.返回全部記錄的全部列下面的代碼說明了在此基礎上如何使用LINQtoSQL返回數據表StudentInfo中所有數據的方法。protectedvoidButton1_Click(objectsender,EventArgse){DataClassesDataContext
db=new
DataClassesDataContext();
var
Stuinfo=fromStuTablein
db.StudentInfoselectStuTable;GridView1.DataSource=Stuinfo;GridView1.DataBind();}11.3使用LINQtoSQL的對象和方法11.3.1返回數據表中的全部記錄(select語句)2.返回全部記錄的部分字段如果希望只返回全部記錄的部分字段值(例如,只返回“學號”studentID和“電子郵件”Email),可將select子句改為如下內容。其中,new{StuTable.StudentID,StuTable.Email}語句創建了一個包含了2個屬性的新匿名類型。selectnew{StuTable.StudentID,StuTable.Email};11.3使用LINQtoSQL的對象和方法11.3.1返回數據表中的全部記錄(select語句)3.返回某條記錄的某個字段值下列語句表示了從查詢結構中取出某行某列值的方法。語句使用ToList()方法,將sinfo轉換成List<>泛型集合后,取出其中的字段值,即將查詢結果中第一條記錄的StudentID字段值顯示到標簽控件中。protectedvoidButton1_Click(objectsender,EventArgse){DataClassesDataContext
db=new
DataClassesDataContext();
var
StuInfo=fromStuTableindb.StudentInfoselectStuTable;Label1.Text=StuInfo.ToList()[0].StudentID;}11.3使用LINQtoSQL的對象和方法11.3.1返回數據表中的全部記錄(select語句)4.遍歷某字段的全部值下列代碼表示了使用foreach循環遍歷studentID字段,并將該字段的所有值添加到列表框控件ListBox1中的方法。protectedvoidButton1_Click(objectsender,EventArgse){
DataClassesDataContext
db=newDataClassesDataContext();
foreach(varsindb.StudentInfo){
ListBox1.Items.Add(s.StudentID);}}11.3使用LINQtoSQL的對象和方法11.3.2返回數據表中符合條件的部分記錄(Where語句)使用Where語句下列語句(斜體字部分)通過Where語句設置了條件表達式,篩選出專業為“軟件技術”,且“1991-02-01”前出生的所有記錄。protectedvoidLinqWhere_Click(objectsender,EventArgse){
DataClassesDataContext
db=newDataClassesDataContext();
var
StuInfo=fromStuTableindb.StudentInfo
whereStuTable.Specialty=="軟件技術"&&
StuTable.DateOfBirth<DateTime.Parse("1991-02-01")selectStuTable;GridView1.DataSource=StuInfo;GridView1.DataBind();}11.3使用LINQtoSQL的對象和方法11.3.2返回數據表中符合條件的部分記錄(Where語句)2.使用Where()方法通常將上面代碼的編寫方式稱為“語句方式”,將使用Lambda表達式的編寫方式稱為“方法方式”,實現程序功能的方法方式代碼如下所示。代碼中斜體字部分使用db.StudentInfo對象的Where()方法,并使用Lambda表達式表示了查詢條件。程序的返回結果與上例完全相同。protectedvoidLinqWhere_Click(objectsender,EventArgse){
DataClassesDataContext
db=newDataClassesDataContext();
var
StuInfo=db.StudentInfo.Where(m=>m.Specialty=="軟件技術"&&
m.DateOfBirth<DateTime.Parse("1991-02-01"));GridView1.DataSource=StuInfo;GridView1.DataBind();}11.3使用LINQtoSQL的對象和方法11.3.2返回數據表中符合條件的部分記錄(Where語句)3.Single()和SingleOrDefault()方法如果希望從數據庫中返回單獨的一條記錄,可使用Single()或SingleOrDefault()方法。其中:1)Single()方法:用于返回符合條件的單獨一條記錄,在沒有找到任何匹配記錄時將拋出一個異常。2)SingleOrDefault()方法:用于返回符合條件的單獨一條記錄,在沒有找到任何匹配的記錄時將返回null。11.3使用LINQtoSQL的對象和方法11.3.2返回數據表中符合條件的部分記錄(Where語句)4.返回字段值包含特定字符串的記錄可以在LINQtoSQL查詢中使用的字符串方法有許多,如:Length、Substring、Contains、StartsWith、EndsWith、IndexOf等等。11.3使用LINQtoSQL的對象和方法11.3.3返回數據集合的排序(OrderBy方法)使用OrdreBy()方法或OrderByDescending()方法,可以實現返回記錄的升序或降序排列。protectedvoidLinqOrderBy_Click(objectsender,EventArgse){
DataClassesDataContext
db=new
DataClassesDataContext();GridView1.DataSource=db.StudentInfo.OrderBy(m=>m.DateOfBirth);GridView1.DataBind();}11.3使用LINQtoSQL的對象和方法11.3.4連接不同數據表(Join語句)如果希望將數據庫中不同表的字段組成一個來自多個表的查詢返回集合,需要使用LINQtoSQL提供的Join語句。
參閱源代碼:ex11-311.3使用LINQtoSQL的對象和方法11.3.5插入新記錄使用LINQtoSQL向數據表中插入一條記錄的方法十分簡單,在創建了DataContext類和數據表實體對象后,只要創建一個數據表對象的實例,并為該實例的各個字段賦值,最后調用數據表對象的InsertOnSubmit()方法,將數據表對象實例添加到表,調用DataContext類對象的SubmitChanges()更新數據庫即可。11.3使用LINQtoSQL的對象和方法11.3.6修改記錄使用LINQtoSQL技術修改數據庫記錄的操作與添加新記錄十分相似,在創建了DataContext類和數據表實體對象后,首先需要查詢到希望修改的記錄,而后為查詢結果對象中的各個字段賦以新值,最后調用DataContext類對象的SubmitChanges()方法即可。11.3使用LINQtoSQL的對象和方法11.3.7刪除記錄使用LINQtoSQL技術刪除數據庫記錄的操作與更新記錄十分相似,在創建了DataContext類和數據表實體對象后,首先需要查詢到希望修改的記錄,而后調用數據表實體對象的DeleteOnSubmit()方法,最后調用DataContext類對象的SubmitChanges()方法即可。11.3使用LINQtoSQL的對象和方法11.3.8使用LINQtoSQL直接執行SQL語句
1.GetCommand()方法
2.ExecuteCommand()方法
DataContext類提供的ExecuteCommand()方法可用于直接對數據庫執行一個沒有返回值的SQL命令。注意,在書寫SQL語句時表名稱、字段名需要用方括號“[]”將其括起來。
3.ExecuteQuery()方法
DataContext類提供的ExecuteQuery()方法用于直接執行一個SQL查詢,該方法返回一個IEnumerable<T>類型的泛型集合。11.4實訓使用LINQtoSQL操作數據庫11.4.1實訓目的①進一步理解創建和使用DataContext類的基本方法。②掌握常用LINQtoSQL語句和方法,掌握通過LINQtoSQL語句或方法實現常規數據庫操作的基本步驟。11.4.2實訓要求使用LINQtoSQL語句和方法,配合GridView、LinqDataSource等控件,設計一個能對SQLServer數據庫StudentDB中StudentInfo表進行查詢、添加、修改或刪除操作的ASP.NET應用程序。第12章ASP.NETMVC本章講述的主要內容12.1ASP.NETMVC概述12.2ASP.NETMVC路由12.3ASP.NETMVC控制器12.4ASP.NETMVC視圖和模型12.5實訓設計一個用戶管理程序
12.1ASP.NETMVC概述ASP.NETMVC是Microsoft推出的新型ASP.NET應用程序開發模式,MVC是模型(Model)、視圖(View)和控制器(Controller)3個單詞的縮寫,它意味著這種開發模式將一個應用程序分為模型、視圖和控制器3個組成部分。VisualStudio2015中內置的MVC版本為ASP.NETMVC5。12.1.1MVC的構成1.模型(Model)2.視圖(View)3.控制器(Controller)12.1ASP.NETMVC概述12.1.1MVC的構成4.MVC的工作原理12.1ASP.NETMVC概述12.1.2Razor語法
ASP.NETMVC5默認使用Razor語法來設計動態網頁。由于Razor是通過System.Web.Mvc下的RazorViewEngine類來實現的,所以也稱為“Razor視圖引擎”。在ASP.NETMVC5項目中使用的Razor視圖引擎為基于Razor語法的Web網頁第3版(也稱為ASP.NETWebPages3)。Razor的特點①利用Razor可以在視圖(.cshtml)文件中混合使用C#和HTML、JavaScript、jQuery等服務器端和客戶端語言。②Razor有非常簡潔的語法格式。在視圖文件中只需要使用一個“@”符號就可以表示C#語句塊或內聯表達式。③Razor能自動對網頁中輸入的字符串進行HTML編碼,可以有效地防范客戶端腳本攻擊。12.1ASP.NETMVC概述12.1.2Razor語法2.使用Razor
(1)使用@標記@標記表示其后跟隨的是C#代碼的一個內聯表達式、單行語句或一個語句塊。(2)使用@Html.Raw()方法對于HTML代碼中出現的@符號本身或雙引號、單引號等特殊符號,可以通過@Html.Raw()方法進行轉義。12.1ASP.NETMVC概述12.1.3創建MVC應用程序參閱源代碼:ex12-112.1.4ASP.NET
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力設備在線監測系統的發展趨勢與挑戰考核試卷
- 2025年【起重機械電氣安裝維修】新版試題及答案
- 2024年項目管理考試回顧試題及答案
- 2025年注會學習技巧提升的途徑試題及答案
- 玻璃纖維增強塑料的低溫性能測試考核試卷
- 高端屋頂花園施工方案
- 汽車改裝配件批發考核試卷
- 2025年投資策略與經濟周期的互動關系試題及答案
- 社區服務與社會組織發展考核試卷
- 機場航站樓服務質量評價指標體系考核試卷
- 報關培訓課程內容
- 營業執照使用授權書
- 南寧市永安村發展規劃方案
- 成人癲癇持續狀態護理專家共識2023
- 江蘇省泰州市姜堰區2023-2024學年二年級下學期期中數學試卷
- 國測省測四年級勞動質量檢測試卷
- 新生兒腹瀉病護理查房
- 再回首合唱簡譜
- 二手車交易平臺商業計劃書
- 作文集封面模板A4高清全套
- 家長會示范課件培養孩子養成獨立自主的習慣
評論
0/150
提交評論