




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2022-3-241第第9章章 ASP.NET訪問訪問SQL Server 2005數(shù)據(jù)庫數(shù)據(jù)庫 主要內(nèi)容主要內(nèi)容nASP.NET概述概述n數(shù)據(jù)庫訪問技術(shù)數(shù)據(jù)庫訪問技術(shù)ADO.NET n數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 n顯示數(shù)據(jù)庫中的數(shù)據(jù)顯示數(shù)據(jù)庫中的數(shù)據(jù) n格式化顯示數(shù)據(jù)庫中的數(shù)據(jù)格式化顯示數(shù)據(jù)庫中的數(shù)據(jù) n 數(shù)據(jù)插入數(shù)據(jù)插入 n數(shù)據(jù)修改和刪除數(shù)據(jù)修改和刪除 2022-3-242前言前言nASP.NET是統(tǒng)一的是統(tǒng)一的 Web 開發(fā)平臺,用來提供開發(fā)人員生成企業(yè)級開發(fā)平臺,用來提供開發(fā)人員生成企業(yè)級 Web 應(yīng)用程序所需的服務(wù)。應(yīng)用程序所需的服務(wù)。nASP.NET 的語法在很大程度上與的語法在很大
2、程度上與 ASP 兼容,同時它還提供一種新兼容,同時它還提供一種新的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應(yīng)用程序。的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應(yīng)用程序。n通過在現(xiàn)有通過在現(xiàn)有 ASP 應(yīng)用程序中逐漸添加應(yīng)用程序中逐漸添加 ASP.NET 功能,隨時增強(qiáng)該功能,隨時增強(qiáng)該 ASP 應(yīng)用程序的功能。應(yīng)用程序的功能。 2022-3-2439.1 ASP .NET概述概述 主要內(nèi)容主要內(nèi)容nASP.NET與與ASP的聯(lián)系和區(qū)別的聯(lián)系和區(qū)別nASP.NET的主要優(yōu)點的主要優(yōu)點 2022-3-244ASP.NET與與ASP的聯(lián)系和區(qū)別的聯(lián)系和區(qū)別u在運行機(jī)制上:在運行機(jī)制上:
3、ASP.NET被設(shè)計成首編譯方式。在頁面代碼成功調(diào)試完畢被設(shè)計成首編譯方式。在頁面代碼成功調(diào)試完畢后,可以進(jìn)行人工編譯,也可以在系統(tǒng)得到第一次訪問請求的時候自動編譯源代后,可以進(jìn)行人工編譯,也可以在系統(tǒng)得到第一次訪問請求的時候自動編譯源代碼,編譯后生成了一個基類,以后每次的訪問都是直接調(diào)用該基類。碼,編譯后生成了一個基類,以后每次的訪問都是直接調(diào)用該基類。u在編碼方式上:在編碼方式上:ASP.NET采用了代碼分離的技術(shù)。采用了代碼分離的技術(shù)。ASP.NET的代碼分離技的代碼分離技術(shù)使得所有的邏輯代碼是被封裝在術(shù)使得所有的邏輯代碼是被封裝在代碼塊中的,有程序員代碼塊中的,有程序員負(fù)責(zé)編寫邏輯代碼
4、。而負(fù)責(zé)編寫邏輯代碼。而HTML布局代碼部分則可以由控件和布局代碼部分則可以由控件和HTML標(biāo)記組成,可標(biāo)記組成,可由美工人員負(fù)責(zé)美工處理。這樣的好處不僅使得程序員和美工人員的工作量大大由美工人員負(fù)責(zé)美工處理。這樣的好處不僅使得程序員和美工人員的工作量大大減少,提高程序的編制效率,而且縮短了程序開發(fā)周期。減少,提高程序的編制效率,而且縮短了程序開發(fā)周期。 u在支持語言上:在支持語言上:ASP.NET放棄了對放棄了對VBScript的支持,新的支持語言包括的支持,新的支持語言包括Visual Basic.NET(有的書中稱為(有的書中稱為Visual Basic 7.0)、)、C#(讀(讀 C
5、Sharp),),J#等。其中等。其中C#是微軟推出的一種專門用于是微軟推出的一種專門用于ASP.NET新的編程語言,它具有新的編程語言,它具有Visual Basic的編程高效性和的編程高效性和C+語言的功能強(qiáng)大性,編程語法規(guī)則和語言的功能強(qiáng)大性,編程語法規(guī)則和C/C+很具有相識性。很具有相識性。本章的代碼部分都是利用本章的代碼部分都是利用C#編寫的。編寫的。2022-3-245ASP.NET的主要優(yōu)點的主要優(yōu)點(1) u執(zhí)行效率的大幅提高:執(zhí)行效率的大幅提高:ASP.NET是把基于通用語言的程序在服務(wù)器是把基于通用語言的程序在服務(wù)器上運。不像以前的上運。不像以前的ASP即時解釋程序,而是將
6、程序在服務(wù)器端首次運行即時解釋程序,而是將程序在服務(wù)器端首次運行時行編譯,這樣的執(zhí)行效果,當(dāng)然比一條一條的解釋強(qiáng)很多。時行編譯,這樣的執(zhí)行效果,當(dāng)然比一條一條的解釋強(qiáng)很多。u世界級的世界級的工具工具支持支持:ASP.NET構(gòu)架是可以用構(gòu)架是可以用Microsoft公司最新的產(chǎn)公司最新的產(chǎn)品品Visual S開發(fā)環(huán)境進(jìn)行開發(fā),開發(fā)環(huán)境進(jìn)行開發(fā),WYSIWYG(What You SeeIs What You Get,所見即為所得)的編輯。,所見即為所得)的編輯。u強(qiáng)大性和適應(yīng)性強(qiáng)大性和適應(yīng)性:ASP.NET可以運行在可以運行在Web應(yīng)用軟件開發(fā)的幾乎全應(yīng)用軟件開發(fā)的幾乎全部的臺上。它對通用語言的基
7、本庫,消息機(jī)制,數(shù)據(jù)接口的處理都能無部的臺上。它對通用語言的基本庫,消息機(jī)制,數(shù)據(jù)接口的處理都能無縫的合到縫的合到ASP.NET的的Web應(yīng)用中。應(yīng)用中。ASP.NET同時也是語言獨立化同時也是語言獨立化language-independent)的,所以,可以選擇一種最適合自己的語言)的,所以,可以選擇一種最適合自己的語言編寫程序,或者把程序用很多種語言來編寫。編寫程序,或者把程序用很多種語言來編寫。u簡單性和易學(xué)性簡單性和易學(xué)性:ASP.NET運行一些很平常的任務(wù),如表單的提交運行一些很平常的任務(wù),如表單的提交和客端的身份驗證,使得分布系統(tǒng)和網(wǎng)站配置變得非常簡單。和客端的身份驗證,使得分布系
8、統(tǒng)和網(wǎng)站配置變得非常簡單。 2022-3-246ASP.NET的主要優(yōu)點的主要優(yōu)點(2)u高效的管理性:高效的管理性:ASP.NET使用一種字符基礎(chǔ)的和分級的配置系統(tǒng),使用一種字符基礎(chǔ)的和分級的配置系統(tǒng),使服務(wù)器環(huán)境和應(yīng)用程序的設(shè)置更加簡單。因為配置信息都保存在簡單使服務(wù)器環(huán)境和應(yīng)用程序的設(shè)置更加簡單。因為配置信息都保存在簡單文本中,新的設(shè)置有可能都不需要啟動本地的管理員文本中,新的設(shè)置有可能都不需要啟動本地的管理員工具工具就可以實現(xiàn)。就可以實現(xiàn)。一個一個ASP.NET的應(yīng)用程序在一臺服務(wù)器系統(tǒng)的安裝中只需要簡單的拷貝的應(yīng)用程序在一臺服務(wù)器系統(tǒng)的安裝中只需要簡單的拷貝一些必需的文件,不需要系統(tǒng)
9、的重新啟動。一些必需的文件,不需要系統(tǒng)的重新啟動。u多處理器環(huán)境的可靠性多處理器環(huán)境的可靠性:ASP.NET已經(jīng)被設(shè)計成為一種可以用于多已經(jīng)被設(shè)計成為一種可以用于多處理器的開發(fā)處理器的開發(fā)工具工具,它在多處理器的環(huán)境下用特殊的無縫連接技術(shù),將,它在多處理器的環(huán)境下用特殊的無縫連接技術(shù),將很大的提高運行速度。即使現(xiàn)在的很大的提高運行速度。即使現(xiàn)在的ASP.NET應(yīng)用應(yīng)用軟件軟件是為一個處理器開是為一個處理器開發(fā)的,將來多處理器運行時不需要任何改變都能提高其效能,但現(xiàn)在的發(fā)的,將來多處理器運行時不需要任何改變都能提高其效能,但現(xiàn)在的ASP做不到這一點。做不到這一點。u自定義性和可擴(kuò)展性自定義性和可
10、擴(kuò)展性:ASP.NET設(shè)計時考慮了讓設(shè)計時考慮了讓網(wǎng)站開發(fā)網(wǎng)站開發(fā)人員可以人員可以在自己的代碼中定義在自己的代碼中定義“Plug-In”的模塊。這與原來的包含關(guān)系不同,的模塊。這與原來的包含關(guān)系不同,ASP.NET可以加入自己定義的各種組件。可以加入自己定義的各種組件。2022-3-2479.2數(shù)據(jù)庫訪問技術(shù)數(shù)據(jù)庫訪問技術(shù)ADO.NET 主要內(nèi)容主要內(nèi)容nADO.NET概述概述n數(shù)據(jù)訪問模式數(shù)據(jù)訪問模式 2022-3-248ADO.NET概述概述 (1)nADO.NET 是是.NET Framework 的一部分,是一種全新的數(shù)據(jù)庫訪的一部分,是一種全新的數(shù)據(jù)庫訪問技術(shù)。問技術(shù)。 nADO.N
11、ET包含兩個核心組件,分別是包含兩個核心組件,分別是.NET Frame work數(shù)據(jù)提供程數(shù)據(jù)提供程序和數(shù)據(jù)集序和數(shù)據(jù)集DataSet。1. .NET Framework數(shù)據(jù)提供程序數(shù)據(jù)提供程序NET Framework數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果。數(shù)據(jù)提供程序中包含的核心對象及其說明如表所示結(jié)果。數(shù)據(jù)提供程序中包含的核心對象及其說明如表所示 。 對象對象說說 明明Collection建立與特定數(shù)據(jù)源的連接建立與特定數(shù)據(jù)源的連接Command對數(shù)據(jù)源執(zhí)行操作命令對數(shù)據(jù)源執(zhí)行操作命令DataReader提供一個來自數(shù)據(jù)庫的快速、僅
12、向前的只讀數(shù)據(jù)流提供一個來自數(shù)據(jù)庫的快速、僅向前的只讀數(shù)據(jù)流DataAdapter將數(shù)據(jù)傳送到將數(shù)據(jù)傳送到 DataSet 和基礎(chǔ)數(shù)據(jù)源,或者從數(shù)據(jù)源傳出和基礎(chǔ)數(shù)據(jù)源,或者從數(shù)據(jù)源傳出2022-3-249ADO.NET概述概述 (2).NET Framework 提供了四個數(shù)據(jù)提供程序:提供了四個數(shù)據(jù)提供程序:SQL Server.NET Framework 數(shù)據(jù)提供程序、數(shù)據(jù)提供程序、OLE DB.NET Framework 數(shù)據(jù)提供程序、數(shù)據(jù)提供程序、ODBC.NET Framework 數(shù)據(jù)提供程序和數(shù)據(jù)提供程序和Oracle.NET Framework 數(shù)據(jù)數(shù)據(jù)提供程序。組成提供程序。
13、組成ADO.NET 的各個類被包含在以下名稱空間中:的各個類被包含在以下名稱空間中:nSystem.Data.SqlClient nSystem.Data.OleDbnSystem.Data.OdbcnSystem.Data.OracleClient 下面對前兩類數(shù)據(jù)提供程序進(jìn)行介紹。下面對前兩類數(shù)據(jù)提供程序進(jìn)行介紹。vSQL serve .NET Framework 數(shù)據(jù)提供程序主要使用它自身的協(xié)議與數(shù)據(jù)提供程序主要使用它自身的協(xié)議與SQL Server 通信。由于它經(jīng)過了優(yōu)化,所以對通信。由于它經(jīng)過了優(yōu)化,所以對SQL Server 數(shù)據(jù)庫的訪問數(shù)據(jù)庫的訪問性能較高。該數(shù)據(jù)提供程序中的類包
14、含在性能較高。該數(shù)據(jù)提供程序中的類包含在System.Data.SqlClient 名稱空名稱空間中。間中。 2022-3-2410ADO.NET概述概述 (3)驅(qū)動程序驅(qū)動程序提供程序提供程序SQLOLE DB 用于用于SQL Server 的的Microsoft OLE DB 提供程序提供程序Microsoft.Jet.OLE DB.4.0 用于用于Microsoft Jet 的的OLE DB 提供程序提供程序MSDAORA 用于用于Oracle 的的Microsoft OLE DB 提供程序提供程序vOLE DB.NET Framework 數(shù)據(jù)提供程序能被應(yīng)用于任何一個數(shù)據(jù)提供程序能被
15、應(yīng)用于任何一個和和.NET 框架相兼容的框架相兼容的OLE DB數(shù)據(jù)庫,比如數(shù)據(jù)庫,比如Access、SQL Server、dBase和和Oracle等數(shù)據(jù)庫。由于它不是為專門的數(shù)據(jù)庫設(shè)計的,所以運等數(shù)據(jù)庫。由于它不是為專門的數(shù)據(jù)庫設(shè)計的,所以運行的效率不如前者。不過,正因為它的通用性,使得在不同類型的數(shù)據(jù)行的效率不如前者。不過,正因為它的通用性,使得在不同類型的數(shù)據(jù)庫之間相互轉(zhuǎn)變時,可不用改寫應(yīng)用程序的代碼就能更換數(shù)據(jù)庫。該數(shù)庫之間相互轉(zhuǎn)變時,可不用改寫應(yīng)用程序的代碼就能更換數(shù)據(jù)庫。該數(shù)據(jù)提供程序中的類包含在據(jù)提供程序中的類包含在System.Data.OleDb 名稱空間中。對于不同名稱空
16、間中。對于不同的數(shù)據(jù)庫,的數(shù)據(jù)庫,OLE DB.NET Framework 數(shù)據(jù)提供程序相應(yīng)的驅(qū)動程序如數(shù)據(jù)提供程序相應(yīng)的驅(qū)動程序如表所示。表所示。2022-3-2411ADO.NET概述概述 (4)對象對象說明說明DataSet 數(shù)據(jù)在內(nèi)存中的緩存數(shù)據(jù)在內(nèi)存中的緩存DataTable 內(nèi)存中數(shù)據(jù)的一個表內(nèi)存中數(shù)據(jù)的一個表DataRow DataTable 中的行中的行DataColumn DataTable 中的列中的列2. DataSet對象對象v DataSet對象的功能是使從數(shù)據(jù)對象的功能是使從數(shù)據(jù)源中檢索到的數(shù)據(jù)在內(nèi)存中緩存,它提源中檢索到的數(shù)據(jù)在內(nèi)存中緩存,它提供一個內(nèi)存駐留表示形
17、式,包括一些數(shù)供一個內(nèi)存駐留表示形式,包括一些數(shù)據(jù)表在內(nèi)的數(shù)據(jù)以及表之間的關(guān)系。據(jù)表在內(nèi)的數(shù)據(jù)以及表之間的關(guān)系。 v DataSet 是是ADO.NET 的斷開式的斷開式數(shù)據(jù)庫操作的核心組件,無論數(shù)據(jù)源是數(shù)據(jù)庫操作的核心組件,無論數(shù)據(jù)源是什么,它都會提供一致的關(guān)系編程模型。什么,它都會提供一致的關(guān)系編程模型。 vSQL Server .NET Framework 數(shù)據(jù)提供程序和數(shù)據(jù)提供程序和OLE DB.NET Framework 數(shù)據(jù)提供程序使用的對象名稱不同,前者的使用對象分別為:數(shù)據(jù)提供程序使用的對象名稱不同,前者的使用對象分別為:SqlConnection、SqlCommand、Sql
18、DataReader、 SqlDataAdapter;后者的使用對象則為:后者的使用對象則為:OleDbConnection、OleDbCommand、OleDbDataReader、 OleDbDataAdaPter。 2022-3-2412ADO.NET概述概述 (5)vDataSet 是是ADO.NET中最核心的成員之一,也是各種基于中最核心的成員之一,也是各種基于.NET 平平臺開發(fā)數(shù)據(jù)庫應(yīng)用程序最常接觸的對象。臺開發(fā)數(shù)據(jù)庫應(yīng)用程序最常接觸的對象。vDataSet 的主要特征是獨立于各種數(shù)據(jù)源。無論什么類型數(shù)據(jù)源,的主要特征是獨立于各種數(shù)據(jù)源。無論什么類型數(shù)據(jù)源,它都會提供一致的關(guān)系編
19、程模型。既可以以離線方式,也可以以實時連它都會提供一致的關(guān)系編程模型。既可以以離線方式,也可以以實時連接來操作數(shù)據(jù)庫中的數(shù)據(jù)。接來操作數(shù)據(jù)庫中的數(shù)據(jù)。vDataSet對象是一個可以用對象是一個可以用XML 形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)關(guān)系視圖。關(guān)系視圖。3. DataAdapter對象對象DataAdapter對象可以建立并初始化數(shù)據(jù)表(即對象可以建立并初始化數(shù)據(jù)表(即DataTable),對),對數(shù)據(jù)源執(zhí)行數(shù)據(jù)源執(zhí)行SQL指令,為指令,為DataSet對象提供存取數(shù)據(jù),可視為對象提供存取數(shù)據(jù),可視為DataSet對象的操作核心,是對象的操作核心,是DataSe
20、t對象與數(shù)據(jù)操作對象之間的溝通媒介。對象與數(shù)據(jù)操作對象之間的溝通媒介。DataAdapter對象可以隱藏對象可以隱藏Connection對象與對象與Command對象溝對象溝通的數(shù)據(jù)。可允許使用通的數(shù)據(jù)。可允許使用DataSet對象存取數(shù)據(jù)源。對象存取數(shù)據(jù)源。2022-3-2413ADO.NET概述概述 (6)其主要的工作流程是:其主要的工作流程是: 由由Connection對象建立與數(shù)據(jù)源聯(lián)機(jī),對象建立與數(shù)據(jù)源聯(lián)機(jī),DataAdapter對象經(jīng)由對象經(jīng)由Command對象操作對象操作SQL指令以存取數(shù)據(jù),存取的數(shù)據(jù)通過指令以存取數(shù)據(jù),存取的數(shù)據(jù)通過Connection對對象返回給象返回給Da
21、taAdapter對象,對象,DataAdapter對象將數(shù)據(jù)放入其所產(chǎn)生的對象將數(shù)據(jù)放入其所產(chǎn)生的DataTable對象,再將對象,再將DataAdapter對象中的對象中的DataTable對象加入到對象加入到DataSet對象中的對象中的DataTables對象中。對象中。 聲明格式:聲明格式:Dim變量名稱變量名稱As sqlDataAdapter變量名稱變量名稱=New sqlDataAdapter(“SQL字符串字符串”,Connection對象名稱)對象名稱) 程序中通常利用程序中通常利用DataAdapter對象中的對象中的Fill方法打開數(shù)據(jù)庫,并利用方法打開數(shù)據(jù)庫,并利用其
22、所附屬的其所附屬的Command對象操作對象操作SQL指令,將結(jié)果保存到指令,將結(jié)果保存到DataSet對象。對象。其格式為:其格式為:DataAdapter對象名稱對象名稱.Fill(DataSet對象名稱,對象名稱,DataTable對象名對象名稱)稱) 2022-3-2414數(shù)據(jù)訪問模式數(shù)據(jù)訪問模式 (1)隨著應(yīng)用程序開發(fā)的發(fā)展演變,數(shù)據(jù)處理越來越多地使用多層結(jié)構(gòu),隨著應(yīng)用程序開發(fā)的發(fā)展演變,數(shù)據(jù)處理越來越多地使用多層結(jié)構(gòu),斷開方式的處理模式可以為應(yīng)用程序提供更好的性能和伸縮性。斷開方式的處理模式可以為應(yīng)用程序提供更好的性能和伸縮性。ADO.NET 訪問數(shù)據(jù)庫的對象模型如圖所示。訪問數(shù)據(jù)
23、庫的對象模型如圖所示。ASP.NET應(yīng)用程序應(yīng)用程序DataSet對象對象SqlDataReader對象對象SqlDatAdapter對象對象SqlCommand對象對象SqlConnction對象對象數(shù)據(jù)庫數(shù)據(jù)庫2022-3-2415數(shù)據(jù)訪問模式數(shù)據(jù)訪問模式 (2)1. 斷開式數(shù)據(jù)訪問模式斷開式數(shù)據(jù)訪問模式斷開式數(shù)據(jù)訪問模式指的是客戶不直接對數(shù)據(jù)庫操作。在斷開式數(shù)據(jù)訪問模式指的是客戶不直接對數(shù)據(jù)庫操作。在.NET 平臺平臺上,使用各種開發(fā)語言開發(fā)的數(shù)據(jù)庫應(yīng)用程序,一般并不直接對數(shù)據(jù)庫上,使用各種開發(fā)語言開發(fā)的數(shù)據(jù)庫應(yīng)用程序,一般并不直接對數(shù)據(jù)庫操作(直接在程序中調(diào)用存儲過程等除外),而是先完
24、成數(shù)據(jù)庫連接和操作(直接在程序中調(diào)用存儲過程等除外),而是先完成數(shù)據(jù)庫連接和通過數(shù)據(jù)適配器填充通過數(shù)據(jù)適配器填充DataSet 對象,然后客戶端再通過讀取對象,然后客戶端再通過讀取DataSet對對象來獲取所需要的數(shù)據(jù)。在更新數(shù)據(jù)庫中的數(shù)據(jù)時,也需要首先更新象來獲取所需要的數(shù)據(jù)。在更新數(shù)據(jù)庫中的數(shù)據(jù)時,也需要首先更新DataSet對象,然后再通過數(shù)據(jù)適配器來更新數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)。對象,然后再通過數(shù)據(jù)適配器來更新數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)。使用斷開式數(shù)據(jù)訪問模式的基本過程如下:使用斷開式數(shù)據(jù)訪問模式的基本過程如下: 使用連接對象使用連接對象Connection 連接并打開數(shù)據(jù)庫;連接并打開數(shù)據(jù)庫; 使
25、用數(shù)據(jù)適配器使用數(shù)據(jù)適配器DataAdapter 填充數(shù)據(jù)集填充數(shù)據(jù)集DataSet; 關(guān)閉連接,對關(guān)閉連接,對DataSet進(jìn)行操作;進(jìn)行操作; 操作完成后打開連接;操作完成后打開連接; 使用數(shù)據(jù)適配器使用數(shù)據(jù)適配器DataAdapter更新數(shù)據(jù)庫。更新數(shù)據(jù)庫。斷開式數(shù)據(jù)訪問模式特別適用于遠(yuǎn)程數(shù)據(jù)處理、本地緩存數(shù)據(jù)及對斷開式數(shù)據(jù)訪問模式特別適用于遠(yuǎn)程數(shù)據(jù)處理、本地緩存數(shù)據(jù)及對執(zhí)行大批量數(shù)據(jù)的處理,不需要時時與數(shù)據(jù)源保持連接,從而將連接資執(zhí)行大批量數(shù)據(jù)的處理,不需要時時與數(shù)據(jù)源保持連接,從而將連接資源釋放給其他客戶端使用。源釋放給其他客戶端使用。 2022-3-2416數(shù)據(jù)訪問模式數(shù)據(jù)訪問模式
26、 (3)2. 連接式數(shù)據(jù)訪問模式連接式數(shù)據(jù)訪問模式連接式數(shù)據(jù)訪問模式是指客戶在操作過程中,與數(shù)據(jù)庫的連接是打連接式數(shù)據(jù)訪問模式是指客戶在操作過程中,與數(shù)據(jù)庫的連接是打開的。如果不需要開的。如果不需要DataSet 所提供的功能,則打開連接后可以直接使用所提供的功能,則打開連接后可以直接使用命令對象命令對象Command 進(jìn)行數(shù)據(jù)庫相關(guān)操作,使用進(jìn)行數(shù)據(jù)庫相關(guān)操作,使用DataReader 對象以僅對象以僅向前只讀方式返回數(shù)據(jù)并顯示,從而提高應(yīng)用程序的性能。在實際應(yīng)用向前只讀方式返回數(shù)據(jù)并顯示,從而提高應(yīng)用程序的性能。在實際應(yīng)用中,選擇數(shù)據(jù)訪問模式的基本原則是首先滿足需求,而后考慮性能優(yōu)化。中,
27、選擇數(shù)據(jù)訪問模式的基本原則是首先滿足需求,而后考慮性能優(yōu)化。2022-3-24179.3數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 主要內(nèi)容主要內(nèi)容n數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接nASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 2022-3-2418數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 (1)SqlConnection對象主要負(fù)責(zé)與數(shù)據(jù)源的連接,建立程序與數(shù)據(jù)源之間的對象主要負(fù)責(zé)與數(shù)據(jù)源的連接,建立程序與數(shù)據(jù)源之間的聯(lián)系,這是存取數(shù)據(jù)庫的第一步聯(lián)系,這是存取數(shù)據(jù)庫的第一步,然后再利用方法然后再利用方法Open()打開數(shù)據(jù)庫,最后利用打開數(shù)據(jù)庫,最后利用方法方法Close()關(guān)閉數(shù)據(jù)庫。關(guān)閉數(shù)據(jù)庫。下面是下面
28、是ASP.NET下給予下給予C#語言連接語言連接SQL Server 2005數(shù)據(jù)庫的代碼:數(shù)據(jù)庫的代碼: /* 導(dǎo)入命名空間導(dǎo)入命名空間 */SqlConnection conMyData /* 定義數(shù)據(jù)庫連接對象定義數(shù)據(jù)庫連接對象 */ String strInsert =select * from 數(shù)據(jù)表數(shù)據(jù)表 /* 查詢語句查詢語句 */String Str1 /* 數(shù)據(jù)庫連接字符串?dāng)?shù)據(jù)庫連接字符串 */ Str1=Data Soure=服務(wù)器名服務(wù)器名;Initial Catalog=數(shù)據(jù)庫名;數(shù)據(jù)庫名;User ID=用戶名用戶名;Password=密碼密碼;conMyData=n
29、ew SqlConnection(Str1) /* 創(chuàng)建數(shù)據(jù)庫連接對象創(chuàng)建數(shù)據(jù)庫連接對象 */conMyData.Open() /* 打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接 */ /* 其它操作其它操作 */conMyData.close() /* 關(guān)閉數(shù)據(jù)庫連接關(guān)閉數(shù)據(jù)庫連接 */2022-3-2419數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 (2)先導(dǎo)入先導(dǎo)入System.Data、System.Data.SqlClient兩個名稱空間,操作兩個名稱空間,操作SQL Server數(shù)據(jù)庫所需的類大多在這兩個名稱空間內(nèi)。其中最重要的是數(shù)據(jù)庫連接數(shù)據(jù)庫所需的類大多在這兩個名稱空間內(nèi)。其中最重要的是數(shù)據(jù)庫連接字符串字符串S
30、tr1的構(gòu)造,它指定了要使用的數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)提供者以及登陸數(shù)據(jù)的構(gòu)造,它指定了要使用的數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)提供者以及登陸數(shù)據(jù)庫的用戶信息。各參數(shù)具體意義及設(shè)置如下:庫的用戶信息。各參數(shù)具體意義及設(shè)置如下: Data Source參數(shù)參數(shù)這個參數(shù)設(shè)置的是系統(tǒng)的后臺數(shù)據(jù)庫服務(wù)器,使用方式為:這個參數(shù)設(shè)置的是系統(tǒng)的后臺數(shù)據(jù)庫服務(wù)器,使用方式為:“Data Source=服務(wù)器名服務(wù)器名”,其中服務(wù)器名就是數(shù)據(jù)庫服務(wù)器的實例名稱。,其中服務(wù)器名就是數(shù)據(jù)庫服務(wù)器的實例名稱。該參數(shù)在設(shè)置的時候還可以有其它的別名,可以是該參數(shù)在設(shè)置的時候還可以有其它的別名,可以是“Server ”,“Address”,
31、“Addr”。如果使用的是本地數(shù)據(jù)庫且定義了實例名,則可以寫為。如果使用的是本地數(shù)據(jù)庫且定義了實例名,則可以寫為“Data Source =local)實例名實例名”;如果是遠(yuǎn)程服務(wù)器,則將;如果是遠(yuǎn)程服務(wù)器,則將“(local)”替換為遠(yuǎn)替換為遠(yuǎn)程服務(wù)器的名稱或程服務(wù)器的名稱或IP地址,地址,SQL Server默認(rèn)的連接端口為默認(rèn)的連接端口為1433端口,默認(rèn)情況端口,默認(rèn)情況下不需要設(shè)置端口號,如果端口不是默認(rèn)的則需要在服務(wù)器名稱后面加冒號再連下不需要設(shè)置端口號,如果端口不是默認(rèn)的則需要在服務(wù)器名稱后面加冒號再連上端口號(:端口號)。上端口號(:端口號)。例如,使用的數(shù)據(jù)提供者是例如,使
32、用的數(shù)據(jù)提供者是7服務(wù)器上面的名為服務(wù)器上面的名為MySource的的SQL Server服務(wù)器實例,并且連接端口為服務(wù)器實例,并且連接端口為1455,參數(shù)設(shè)置如下:,參數(shù)設(shè)置如下:”Data Source=7MySource:1455” 2022-3-2420數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 (3) User ID與與Password參數(shù)參數(shù)User ID為連接數(shù)據(jù)庫驗證用戶名,它還有一個別名為連接數(shù)據(jù)庫驗證用戶名,它還有一個別名“UID”;Password為連接數(shù)據(jù)庫驗證密碼,它的別名為為連接數(shù)據(jù)庫驗證密碼,它的別名為“PWD”。設(shè)置方式
33、別。設(shè)置方式別為為“User ID=用戶名用戶名”,“Password=密碼密碼”。這里要注意,。這里要注意,SQL Server必須預(yù)先已經(jīng)設(shè)置了需要用戶名和密碼來登錄,否則不能用這樣必須預(yù)先已經(jīng)設(shè)置了需要用戶名和密碼來登錄,否則不能用這樣的方式來登錄。如果的方式來登錄。如果SQL Server設(shè)置為設(shè)置為Windows登錄,那么在這里就登錄,那么在這里就不需要使用不需要使用“User ID”和和“Password”這樣的方式來登錄,而需要使用這樣的方式來登錄,而需要使用“Trusted_Connection=SSPI”來進(jìn)行登錄。來進(jìn)行登錄。 Initial Catalog參數(shù)參數(shù)用于指定
34、使用的數(shù)據(jù)庫名稱。在連接字符串中所用的登陸信息要對用于指定使用的數(shù)據(jù)庫名稱。在連接字符串中所用的登陸信息要對該參數(shù)設(shè)置的數(shù)據(jù)庫下面相應(yīng)的數(shù)據(jù)表具有操作權(quán)限。該參數(shù)還有一個該參數(shù)設(shè)置的數(shù)據(jù)庫下面相應(yīng)的數(shù)據(jù)表具有操作權(quán)限。該參數(shù)還有一個別名為別名為“Database”,所以可設(shè)置為,所以可設(shè)置為“Initial Catalog =數(shù)據(jù)庫名數(shù)據(jù)庫名”或或著著“Database=數(shù)據(jù)庫名數(shù)據(jù)庫名”。在參數(shù)構(gòu)造的字符串中的,各參數(shù)之間用分號隔開。在參數(shù)構(gòu)造的字符串中的,各參數(shù)之間用分號隔開。后面例子中假設(shè)服務(wù)器的名字為:后面例子中假設(shè)服務(wù)器的名字為:HYITSQLEXPRESS,數(shù)據(jù)庫的,數(shù)據(jù)庫的名字為
35、:教務(wù)管理,用戶名為:名字為:教務(wù)管理,用戶名為:aspnetname,密碼為:,密碼為:123456。2022-3-2421ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (1)1. 創(chuàng)建數(shù)據(jù)庫及用戶信息創(chuàng)建數(shù)據(jù)庫及用戶信息 打開打開Microsoft SQL Server Manager管理器。管理器。 建立教務(wù)管理數(shù)據(jù)庫和第數(shù)據(jù)表建立教務(wù)管理數(shù)據(jù)庫和第數(shù)據(jù)表S, 下面創(chuàng)建登錄用戶。單擊安全性前面的下面創(chuàng)建登錄用戶。單擊安全性前面的“+”號,選擇號,選擇“登錄登錄”,單擊右鍵,在彈出的快捷菜單中單擊單擊右鍵,在彈出的快捷菜單中單擊“新建登錄新建登錄”命令,彈出命令,彈出
36、“登錄名登錄名”對話框,如下圖所示。對話框,如下圖所示。2022-3-2422ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (2)學(xué)號學(xué)號SNO姓名姓名SNAME性別性別SEX年齡年齡AGE所在系所在系SDEPT200915121200915122200915123200515125李小勇李小勇劉劉 晨晨王洪敏王洪敏張張 力力MFFM20191819CSCSMAIS1. 創(chuàng)建數(shù)據(jù)庫及用戶信息創(chuàng)建數(shù)據(jù)庫及用戶信息 打開打開Microsoft SQL Server Manager管理器。管理器。 建立教務(wù)管理數(shù)據(jù)庫和數(shù)據(jù)表建立教務(wù)管理數(shù)據(jù)庫和數(shù)據(jù)表S: 下面創(chuàng)建登錄用戶。單擊
37、安全性前面的下面創(chuàng)建登錄用戶。單擊安全性前面的“+”號,選擇號,選擇“登登錄錄”,單擊右鍵,在彈出的快捷菜單中單擊,單擊右鍵,在彈出的快捷菜單中單擊“新建登錄新建登錄”命令,彈出命令,彈出“登錄名登錄名”對話框,如下圖所示。對話框,如下圖所示。2022-3-2423ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (3)登錄名為登錄名為“aspnetname”密碼為密碼為“123456”,取消取消“用戶在下次登錄時必須更改密碼用戶在下次登錄時必須更改密碼”復(fù)選框復(fù)選框2022-3-2424ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (4) 指定可以訪問
38、的數(shù)據(jù)庫指定可以訪問的數(shù)據(jù)庫是是“教務(wù)管理教務(wù)管理” 選定權(quán)限選定權(quán)限“db_owner” 單擊單擊“用戶映射用戶映射”項,項,進(jìn)行用戶權(quán)限設(shè)置進(jìn)行用戶權(quán)限設(shè)置2022-3-2425ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (5) 為了與應(yīng)用程序相連接,也可以設(shè)置為了與應(yīng)用程序相連接,也可以設(shè)置SQL Server 2005的登錄模的登錄模式,這是非常重要的一步,用戶要注意。式,這是非常重要的一步,用戶要注意。 選擇選擇SQL服務(wù)器,單擊右鍵,在彈出的菜單中選擇服務(wù)器,單擊右鍵,在彈出的菜單中選擇“屬性屬性”命令,命令,就會出現(xiàn)服務(wù)器屬性設(shè)置對話框,在該對話框中單擊就
39、會出現(xiàn)服務(wù)器屬性設(shè)置對話框,在該對話框中單擊“安全性安全性”項,如項,如下圖所示。下圖所示。 2022-3-2426ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (6)一定要把服務(wù)器身份驗證設(shè)一定要把服務(wù)器身份驗證設(shè)為為“SQL Server和和Windows身份驗證模式身份驗證模式” 2022-3-2427ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (7) 設(shè)置好后,還要重新啟動服務(wù):選擇設(shè)置好后,還要重新啟動服務(wù):選擇SQL服務(wù)器,單擊右鍵,在服務(wù)器,單擊右鍵,在彈出的快捷菜單中選擇彈出的快捷菜單中選擇“重新啟動重新啟動”命令,這時會彈出提示對
40、話框,然命令,這時會彈出提示對話框,然后單擊后單擊“是是”按鈕,就會彈出按鈕,就會彈出“服務(wù)控制服務(wù)控制”對話框。當(dāng)服務(wù)控制運行完對話框。當(dāng)服務(wù)控制運行完后,就設(shè)置成功了。后,就設(shè)置成功了。2. ASP.NET代碼編寫代碼編寫在在Windows記事本軟件環(huán)境中輸入如下代碼:記事本軟件環(huán)境中輸入如下代碼:void sql1_onClick(Object source,EventArgs e) string str1 = Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管理;User ID=aspnetname;Password=123456;20
41、22-3-2428ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (8)SqlConnection mycon=new SqlConnection(str1); Mycon.Open(); Show1.Text=”連接成功連接成功!”; Mycon.Close(); show2.Text=”關(guān)閉連接關(guān)閉連接!”; Connection對象連接數(shù)據(jù)庫對象連接數(shù)據(jù)庫Connection對象連接數(shù)據(jù)庫對象連接數(shù)據(jù)庫2022-3-2429ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (9)按鍵盤上的【按鍵盤上的【Ctrl+S】組合鍵,保存文件到】組合鍵,保存文
42、件到“e:目錄集目錄集sql server2005代碼代碼13”文件夾中,文件名為文件夾中,文件名為“aspnetsql1.aspx”,保存格式選,保存格式選擇擇“所有文件所有文件”,編碼為,編碼為“ANSI”。2022-3-2430ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (10)3. ASP.NET環(huán)境配置與測試環(huán)境配置與測試 先來創(chuàng)建虛擬目錄。單擊先來創(chuàng)建虛擬目錄。單擊“開始開始/設(shè)置設(shè)置/控制面板控制面板”命令,打開控命令,打開控制面板,雙擊制面板,雙擊“管理工具管理工具”按鈕,打開管理工具窗口,在管理工具窗口按鈕,打開管理工具窗口,在管理工具窗口中雙擊中雙擊
43、“Internet信息服務(wù)信息服務(wù)(IIS)管理器管理器”,打開,打開“Internet信息服務(wù)信息服務(wù)(IIS)管理器管理器”窗口,如下圖所示。窗口,如下圖所示。2022-3-2431ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (11)在在“Intemet信息服務(wù)(信息服務(wù)(IIS)管理)管理器器”窗口中,選擇窗口中,選擇“默認(rèn)默認(rèn)Web站站點點”,單擊右健,在彈出的快捷,單擊右健,在彈出的快捷菜單中選擇菜單中選擇“新建新建/虛擬目錄虛擬目錄”命命令。彈出令。彈出“虛擬目錄創(chuàng)建向?qū)摂M目錄創(chuàng)建向?qū)А睂υ捒颍缦聢D所示。對話框,如下圖所示。 2022-3-2432ASP
44、.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (12)單擊單擊“下一步下一步”按鈕彈出創(chuàng)建虛擬目按鈕彈出創(chuàng)建虛擬目錄別名對話框,在這里命名為錄別名對話框,在這里命名為sqlserver2005,2022-3-2433ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (13) 再單擊再單擊“下一步下一步”按鈕,彈出選擇網(wǎng)站內(nèi)容目錄對話框,單擊按鈕,彈出選擇網(wǎng)站內(nèi)容目錄對話框,單擊“瀏覽瀏覽”按鈕,會彈出如圖所示選擇文件對話框。按鈕,會彈出如圖所示選擇文件對話框。選擇選擇“D:DBAspdotnet”單擊單擊“確定確定”按鈕,按鈕,彈出虛擬目錄訪問彈出虛擬目錄訪問
45、權(quán)限設(shè)置對話框,權(quán)限設(shè)置對話框,如圖下所示。如圖下所示。 2022-3-2434ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (14)選擇了所有的權(quán)限選擇了所有的權(quán)限 單擊單擊“下一步下一步”按鈕,按鈕,彈出設(shè)置完成對話框,彈出設(shè)置完成對話框,單擊單擊“完成完成”按鈕即按鈕即可。這樣就創(chuàng)建了虛可。這樣就創(chuàng)建了虛擬目錄。擬目錄。 2022-3-2435ASP.NET連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試連接數(shù)據(jù)庫的環(huán)境設(shè)置與測試 (15) 單擊單擊“13”文件夾,然后選擇文件夾,然后選擇“aspnetsql1.aspx”文件,單擊右文件,單擊右鍵,在彈出的快捷菜單中選擇鍵,在彈出的快捷
46、菜單中選擇“瀏覽瀏覽”命令,這時出現(xiàn)瀏覽效果如圖所示。命令,這時出現(xiàn)瀏覽效果如圖所示。單擊頁面中的單擊頁面中的“測試連測試連接數(shù)據(jù)庫接數(shù)據(jù)庫”按鈕,就會按鈕,就會顯示相應(yīng)的提示信息。顯示相應(yīng)的提示信息。 2022-3-24369.4顯示數(shù)據(jù)庫中的數(shù)據(jù)顯示數(shù)據(jù)庫中的數(shù)據(jù) 主要內(nèi)容主要內(nèi)容n顯示和修改數(shù)據(jù)的常用方法顯示和修改數(shù)據(jù)的常用方法n顯示數(shù)據(jù)庫中的數(shù)據(jù)顯示數(shù)據(jù)庫中的數(shù)據(jù) 2022-3-2437顯示和修改數(shù)據(jù)的常用方法顯示和修改數(shù)據(jù)的常用方法 (1)1. ExecuteReader方法方法該方法是查詢顯示數(shù)據(jù)庫中數(shù)據(jù)最常用的一種方法,即利用該方法該方法是查詢顯示數(shù)據(jù)庫中數(shù)據(jù)最常用的一種方法,即
47、利用該方法可以讀出數(shù)據(jù)源中的數(shù)據(jù),生成一個可以讀出數(shù)據(jù)源中的數(shù)據(jù),生成一個DataReader對象,然后利用對象,然后利用SqlDataReader對象進(jìn)行輸出顯示。對象進(jìn)行輸出顯示。該方法執(zhí)行時需要帶兩個參數(shù),分別是該方法執(zhí)行時需要帶兩個參數(shù),分別是CommandText和和SqlConnection。代碼如下:。代碼如下:string str1 = Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管理;User ID=aspnetname;Password=123456;SqlConnection mycon=new SqlConnecti
48、on(strl);Mycon.Open();String sqlstr1=”select * from S”;SqlCommand mycom=new SqlCommand(sqlstrl,mycon);SqlDataReader myreader=mycomm.ExecuteReader();SqlCommand的最常見用法是執(zhí)行返回結(jié)果的查詢。的最常見用法是執(zhí)行返回結(jié)果的查詢。SqlCommand類設(shè)計用于幫助開發(fā)人員構(gòu)造自己的查類設(shè)計用于幫助開發(fā)人員構(gòu)造自己的查詢。詢。調(diào)用調(diào)用SqlCommand對象的對象的ExecuteReader方法會方法會返回返回SqlDataReader對象,可
49、以用它來獲取由這些查詢對象,可以用它來獲取由這些查詢返回的行。返回的行。有三種方式創(chuàng)建有三種方式創(chuàng)建SqlCommand對象:使對象:使用用new關(guān)鍵字直接創(chuàng)建對象的一個新實例,然后設(shè)置適關(guān)鍵字直接創(chuàng)建對象的一個新實例,然后設(shè)置適當(dāng)屬性;使用一個可用的構(gòu)造函數(shù)來指定查詢字符串當(dāng)屬性;使用一個可用的構(gòu)造函數(shù)來指定查詢字符串以及以及SqlConnection對象;調(diào)用對象;調(diào)用SqlConnection類的類的CreaterCommand方法。方法。 SqlDataReader類可以利用它們類可以利用它們(以只讀方式以只讀方式)查看對象所公開的數(shù)據(jù)。并且公開了允許在查查看對象所公開的數(shù)據(jù)。并且公開
50、了允許在查詢結(jié)果中進(jìn)行遍歷的屬性和方法。詢結(jié)果中進(jìn)行遍歷的屬性和方法。要創(chuàng)建一個要創(chuàng)建一個SqlDataReader,只需要調(diào)用,只需要調(diào)用SqlCommand對對象的象的ExecuteReader方法。方法。 2022-3-2438顯示和修改數(shù)據(jù)的常用方法顯示和修改數(shù)據(jù)的常用方法 (2)2. ExecuteNonQuery方法方法由于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行插入、更新、刪除或利用存儲過程進(jìn)行由于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行插入、更新、刪除或利用存儲過程進(jìn)行操作時,是不返回行數(shù)的。而操作時,是不返回行數(shù)的。而ExecuteNonQuery方法返回一個整數(shù),方法返回一個整數(shù),表示已執(zhí)行的語句所影響的數(shù)據(jù)行數(shù)
51、。下面以向數(shù)據(jù)庫中插入一條記錄表示已執(zhí)行的語句所影響的數(shù)據(jù)行數(shù)。下面以向數(shù)據(jù)庫中插入一條記錄為例進(jìn)行說明。為例進(jìn)行說明。string str1 = Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管理;User ID=aspnetname;Password=123456;SqlConnection mycon=new SqlConnection(strl);Mycon.Open();String insertstrl=Insert into S(Sno,Sname,Sex,Age,Sdept) values(200913254,呂占英呂占英,F
52、,21,CS);SqlCommand mycom=new SqlCommand(insertstrl,mycon);Int num=mycom.ExecuteNonQuery(); 2022-3-2439顯示和修改數(shù)據(jù)的常用方法顯示和修改數(shù)據(jù)的常用方法 (3)3. ExecuteScalar方法方法在查詢數(shù)據(jù)庫中的數(shù)據(jù)時,常常會查詢最大值、最小值、平均值、在查詢數(shù)據(jù)庫中的數(shù)據(jù)時,常常會查詢最大值、最小值、平均值、總和等,即查詢函數(shù)運算值,這時就要使用總和等,即查詢函數(shù)運算值,這時就要使用ExecuteScalar方法,返回方法,返回查詢所影響的結(jié)果集中在第一行的第一列。因此該方法常用于函數(shù)查詢
53、。查詢所影響的結(jié)果集中在第一行的第一列。因此該方法常用于函數(shù)查詢。下面來看一下代碼:下面來看一下代碼:string str1 = Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管理;User ID=aspnetname;Password=123456;SqlConnection mycon=new SqlConnection(strl);Mycon.Open();String scalarstrl=”select min(AGE) from S;SqlCommand mycom=new SqlCommand(scalarstrl,mycon)
54、;Int num=(int)mycom.ExecuteScalar();2022-3-2440顯示和修改數(shù)據(jù)的常用方法顯示和修改數(shù)據(jù)的常用方法 (4)n4. ExecuteXmlReader方法方法n該方法主要實現(xiàn)數(shù)據(jù)庫與該方法主要實現(xiàn)數(shù)據(jù)庫與XML文檔的交流,使用該方法需要傳遞一文檔的交流,使用該方法需要傳遞一個個For XML子句的子句的T-SQL語句。該方法執(zhí)行時要帶兩個參數(shù):語句。該方法執(zhí)行時要帶兩個參數(shù):CommandText和和SqlConnection。可以利用該方法生成一個。可以利用該方法生成一個XmlReader對象。具體代碼如下:對象。具體代碼如下:nstring str1
55、 = Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管理;User ID=aspnetname;Password=123456;nSqlConnection mycon=new SqlConnection(strl);nMycon.Open();nString xmltr1=”select * from S for XML AUTO,XMLData”;nSqlCommand mycom=new SqlCommand(scalarstr1,mycon);nXmlReader myxml=mycom.ExecuteXmlReader();2022
56、-3-2441顯示數(shù)據(jù)庫中的數(shù)據(jù)顯示數(shù)據(jù)庫中的數(shù)據(jù) (1)顯示顯示SQL Server 2005數(shù)據(jù)庫中的數(shù)據(jù)的程序分為四步完成:數(shù)據(jù)庫中的數(shù)據(jù)的程序分為四步完成: 導(dǎo)導(dǎo)入命名空間,是因為我們所使用的數(shù)據(jù)庫對象都在該命名空間入命名空間,是因為我們所使用的數(shù)據(jù)庫對象都在該命名空間中中,具體代碼如下:,具體代碼如下: 利用利用SqlConnection連接數(shù)據(jù)源,然后利用連接數(shù)據(jù)源,然后利用Sqlcommand對象對象查詢數(shù)據(jù)源查詢數(shù)據(jù)源,具體代碼如下:,具體代碼如下:string str1 = ”Data Source=HYITSQLEXPRESS;Initial Catalog=教務(wù)管理教務(wù)管
57、理;User ID=aspnetname;Password=123456”;SqlConnection mycon=new SqlConnection(str1); SqlCommand mycomm=new SqlCommand(”select * from S”,mycon);2022-3-2442顯示數(shù)據(jù)庫中的數(shù)據(jù)顯示數(shù)據(jù)庫中的數(shù)據(jù) (2) 利用利用Sqlcommand對象的對象的ExecuteReader方法產(chǎn)生一個方法產(chǎn)生一個SqlDataReader對象,然后再利用該對象的對象,然后再利用該對象的Read()方法顯示數(shù)據(jù)庫中的數(shù)據(jù)方法顯示數(shù)據(jù)庫中的數(shù)據(jù),具體代碼如下:,具體代碼如下
58、:SqlDataReader myreader=mycomm.ExecuteReader(); While (myreader.Read() Response.Write(myreader.GetString(0)+” ”); Response.Write(myreader.GetString(1)+” ”); Response.Write(myreader.GetString(2)+” ”); 調(diào)用調(diào)用Read()方法之后,方法之后,SqlDataReader對象才會移動到結(jié)果集的第一行,同對象才會移動到結(jié)果集的第一行,同時也返回一個時也返回一個Bool值,表明下一行是否可用,返回值,表明下
59、一行是否可用,返回True則可用,返回則可用,返回False則到達(dá)則到達(dá)結(jié)果集末尾。結(jié)果集末尾。 關(guān)閉數(shù)據(jù)源。要先關(guān)閉關(guān)閉數(shù)據(jù)源。要先關(guān)閉SqlDataReader對象,才能關(guān)閉對象,才能關(guān)閉SqlConnection對對象,是因為象,是因為SqlDataReader對象以獨占方式使用對象以獨占方式使用SqlConnection對象對象,代碼如下:,代碼如下:myreader.Close();mycon.Close();2022-3-24439.5格式化顯示數(shù)據(jù)庫中的數(shù)據(jù)格式化顯示數(shù)據(jù)庫中的數(shù)據(jù) 主要內(nèi)容主要內(nèi)容n利用利用DataSet對象顯示數(shù)據(jù)對象顯示數(shù)據(jù)n表格顯示數(shù)據(jù)庫中的數(shù)據(jù)表格顯示數(shù)
60、據(jù)庫中的數(shù)據(jù)n分頁顯示數(shù)據(jù)庫中的數(shù)據(jù)分頁顯示數(shù)據(jù)庫中的數(shù)據(jù) 2022-3-2444利用利用DataSet對象顯示數(shù)據(jù)對象顯示數(shù)據(jù) (1)DataSet對象是對象是ASP.NET中非常重要的一個對象,該對象是內(nèi)存中中非常重要的一個對象,該對象是內(nèi)存中數(shù)據(jù)的表示形式,無論數(shù)據(jù)源是什么,它都可以提供一致的關(guān)系編程模數(shù)據(jù)的表示形式,無論數(shù)據(jù)源是什么,它都可以提供一致的關(guān)系編程模型,可以應(yīng)用于多種不同的數(shù)據(jù)源。型,可以應(yīng)用于多種不同的數(shù)據(jù)源。1. DataSet對象與對象與DataReader對象的比較對象的比較DataSet對象:對象:必須結(jié)合必須結(jié)合DataAdapter對象使用,它是由許多數(shù)據(jù)對象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年度四川省眉山市東坡區(qū)冠城實驗學(xué)校高二下學(xué)期第一次月考?xì)v史試題(含答案)
- 數(shù)字普惠金融賦能河南省中小企業(yè)高質(zhì)量發(fā)展的路徑研究
- 幼兒園保教工作計劃
- 二零二五版員工“心理契約”的前世今生
- 二零二五幼兒園食堂聘用合同書
- 借貸擔(dān)保合同補充協(xié)議二零二五年
- 地基轉(zhuǎn)讓合同
- 經(jīng)營權(quán)質(zhì)押合同
- 全新公司股權(quán)期權(quán)協(xié)議書
- 基于氣熱固雙向耦合的核心機(jī)葉尖間隙預(yù)估與調(diào)控
- 食用菌資源的開發(fā)及利用
- 二年級下冊科學(xué)課件 11 不斷發(fā)展的人工產(chǎn)品 人教版(26張PPT)
- 三.國際法習(xí)題之經(jīng)典案例分析
- vmvare虛擬化平臺巡檢細(xì)則和方法
- 個人求職簡歷兩頁 (46)應(yīng)聘履歷參考模板可編輯修改
- 水下混凝土澆筑導(dǎo)管水密試驗
- 非連續(xù)性文本閱讀訓(xùn)練(六年級語文復(fù)習(xí))
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- 剪刀式升降機(jī)
- 渤海灣盆地構(gòu)造演化及其油氣意義
- 并聯(lián)高抗中性點小電抗補償原理分析及參數(shù)選擇方法
評論
0/150
提交評論