




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第21章 ADO.NET之一:連接層21.1 ADO.NET概述 ADO.NETADO.NET是微軟以類似于是微軟以類似于ADOADO的方式設(shè)計并實現(xiàn)的專用于的方式設(shè)計并實現(xiàn)的專用于. .NETNET平臺的新技術(shù)。平臺的新技術(shù)。它提供一個面向?qū)ο蟮臄?shù)據(jù)存取構(gòu)架。它提供一個面向?qū)ο蟮臄?shù)據(jù)存取構(gòu)架。 可以使用 ADO.NET 的兩個組件來訪問和處理數(shù)據(jù): .NET Framework 數(shù)據(jù)提供程序 DataSetNET Framework 數(shù)據(jù)提供程序數(shù)據(jù)提供程序 .NET Framework 數(shù)據(jù)提供程序是專門為數(shù)據(jù)處理以及快速地只進、只讀訪問數(shù)據(jù)而設(shè)計的組件。Connection 對象提供與數(shù)
2、據(jù)源的連接。Command 對象使您能夠訪問用于返回數(shù)據(jù)、修改數(shù)據(jù)、運行存儲過程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令。DataReader 從數(shù)據(jù)源中提供高性能的數(shù)據(jù)流。最后,DataAdapter 提供連接 DataSet 對象和數(shù)據(jù)源的橋梁。DataAdapter 使用 Command 對象在數(shù)據(jù)源中執(zhí)行 SQL 命令,以便將數(shù)據(jù)加載到 DataSet 中,并使對 DataSet 中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致。DataSet ADO.NET DataSet 專門為獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問而設(shè)計。因此,它可以用于多種不同的數(shù)據(jù)源,用于 XML 數(shù)據(jù),或用于管理應(yīng)用程序本地的數(shù)據(jù)。DataSe
3、t 包含一個或多個 DataTable 對象的集合,這些對象由數(shù)據(jù)行和數(shù)據(jù)列以及有關(guān) DataTable 對象中數(shù)據(jù)的主鍵、外鍵、約束和關(guān)系信息組成。選擇選擇 DataReader 或或 DataSet 在決定應(yīng)用程序應(yīng)使用 DataReader還是應(yīng)使用 DataSet時,應(yīng)考慮應(yīng)用程序所需的功能類型。DataSet 用于執(zhí)行以下功能: 在應(yīng)用程序中將數(shù)據(jù)緩存在本地,以便可以對數(shù)據(jù)進行處理。如果只需要讀取查詢結(jié)果,DataReader 是更好的選擇。 在層間或從 XML Web 服務(wù)對數(shù)據(jù)進行遠(yuǎn)程處理。 與數(shù)據(jù)進行動態(tài)交互,例如綁定到 Windows 窗體控件或組合并關(guān)聯(lián)來自多個源的數(shù)據(jù)。
4、對數(shù)據(jù)執(zhí)行大量的處理,而不需要與數(shù)據(jù)源保持打開的連接,從而將該連接釋放給其他客戶端使用。21.2 ADO.NET數(shù)據(jù)提供程序ADO.NET 操作數(shù)據(jù)庫結(jié)構(gòu)圖本章內(nèi)容本章內(nèi)容.NET 數(shù)據(jù)提供程序類型. .NET Framework 數(shù)據(jù)提供程序數(shù)據(jù)提供程序 說說 明明SQL Server .NET 數(shù)據(jù)提供程序數(shù)據(jù)提供程序Microsoft SQL Server 數(shù)據(jù)源數(shù)據(jù)源System.Data.SqlClient 命名空間命名空間OLE DB .NET 數(shù)據(jù)提供程序數(shù)據(jù)提供程序OLE DB 公開的數(shù)據(jù)源公開的數(shù)據(jù)源System.Data.OleDb 命名空間命名空間ODBC .NET 數(shù)據(jù)
5、提供程序數(shù)據(jù)提供程序ODBC 公開的數(shù)據(jù)源公開的數(shù)據(jù)源System.Data.Odbc 命名空間命名空間Oracle .NET 數(shù)據(jù)提供程序數(shù)據(jù)提供程序Oracle 數(shù)據(jù)源數(shù)據(jù)源System.Data.OracleClient 命名空間命名空間21.6 創(chuàng)建Autolot數(shù)據(jù)庫2021-10-1621.7 連接和檢索數(shù)據(jù)數(shù)據(jù)庫命令對象數(shù)據(jù)庫命令對象CommandCommandSqlCommand SqlCommand 、OleDbCommandOleDbCommand提供存取數(shù)據(jù)庫的命令(包括:提供存取數(shù)據(jù)庫的命令(包括:SelectSelect、InsertInsert、DeleteDele
6、te、UpdateUpdate)提供數(shù)據(jù)源(庫)的連接,針對不同的數(shù)據(jù)庫有不同的連接對象;提供數(shù)據(jù)源(庫)的連接,針對不同的數(shù)據(jù)庫有不同的連接對象;數(shù)據(jù)庫連接對象數(shù)據(jù)庫連接對象ConnectionConnectionSqlSqlConnectionConnection 、OleDbOleDbConnectionConnection四個對象四個對象數(shù)據(jù)庫閱讀器數(shù)據(jù)庫閱讀器 DataReaderDataReader通過通過CommandCommand執(zhí)行執(zhí)行SQLSQL命令可提供一個向前的數(shù)據(jù)流。供應(yīng)用程序讀取。命令可提供一個向前的數(shù)據(jù)流。供應(yīng)用程序讀取。DataAdapterDataAdapte
7、r含兩個主要成員,含兩個主要成員,ConnectionConnection及一組及一組CommandCommand對象,通過構(gòu)造函對象,通過構(gòu)造函數(shù)可以為這兩個對象賦值。它可以向數(shù)可以為這兩個對象賦值。它可以向DataSetDataSet裝載表數(shù)據(jù)。裝載表數(shù)據(jù)。數(shù)據(jù)庫適配器數(shù)據(jù)庫適配器DataAdapterDataAdapterSqlSqlDataAdapter DataAdapter 、OleDbOleDbDataAdapteDataAdapte21.8 使用 Connection應(yīng)用程序應(yīng)用程序請求數(shù)據(jù)請求數(shù)據(jù)Connection橋梁橋梁連接數(shù)據(jù)庫示例 連接到本機的 AutoLot數(shù)據(jù)庫演
8、示示例演示示例1 1:測試測試 AutoLot 數(shù)據(jù)庫連接數(shù)據(jù)庫連接示例1 代碼分析 關(guān)鍵代碼回顧/ 數(shù)據(jù)庫連接字符串?dāng)?shù)據(jù)庫連接字符串string connString = Data Source= . ;Initial Catalog= AutoLot;User ID=sa;pwd=*;/ 創(chuàng)建創(chuàng)建 Connection 對象對象SqlConnection connection = new SqlConnection(connString); / 打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接connection.Open();Console.WriteLine(打開數(shù)據(jù)庫連接成功打開數(shù)據(jù)庫連接成功); /
9、關(guān)閉數(shù)據(jù)庫連接關(guān)閉數(shù)據(jù)庫連接connection.Close();Console.WriteLine(關(guān)閉數(shù)據(jù)庫連接成功關(guān)閉數(shù)據(jù)庫連接成功);表示本機表示本機Connection 主要成員必須顯式關(guān)閉連接必須顯式關(guān)閉連接屬性名稱屬性名稱說說 明明ConnectionString 連接字符串連接字符串方法方法說說 明明Open()打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接Close()關(guān)閉數(shù)據(jù)庫連接關(guān)閉數(shù)據(jù)庫連接連接數(shù)據(jù)庫步驟連接數(shù)據(jù)庫的步驟:1、定義連接字符串2、創(chuàng)建、創(chuàng)建 Connection 對象對象3、打開與數(shù)據(jù)庫的連接、打開與數(shù)據(jù)庫的連接Data Source=服務(wù)器名服務(wù)器名;Initial Ca
10、talog=數(shù)據(jù)庫名數(shù)據(jù)庫名; User ID=用戶名用戶名;Pwd=密碼密碼SqlConnection connection = new SqlConnection(connString);連接字符串連接字符串connection.Open( );沒有密碼,可省略沒有密碼,可省略Connection 對象命名空間命名空間對應(yīng)的對應(yīng)的 Connection 對象對象System.Data.SqlClient SqlConnectionSystem.Data.OleDbOleDbConnectionSystem.Data.Odbc OdbcConnectionSystem.Data.Oracle
11、ClientOracleConnection不同命名空間的不同命名空間的 Connection 對象對象小結(jié)連接到本機的連接到本機的 pubs 數(shù)據(jù)庫數(shù)據(jù)庫/ 連接字符串連接字符串string connString = Data Source=.;Initial Catalog=pubs;User ID=sa;/ 創(chuàng)建創(chuàng)建Connection 對象對象 SqlConnection connection = new SqlConnection(connString);connection.Open( ); / 打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接connection.Close( ); / 關(guān)閉數(shù)據(jù)庫連
12、接關(guān)閉數(shù)據(jù)庫連接關(guān)鍵代碼關(guān)鍵代碼參考答案參考答案為什么使用異常處理應(yīng)用程序應(yīng)用程序打開數(shù)據(jù)庫打開數(shù)據(jù)庫處理數(shù)據(jù)處理數(shù)據(jù)與數(shù)據(jù)庫的連接中斷與數(shù)據(jù)庫的連接中斷無法打開數(shù)據(jù)庫無法打開數(shù)據(jù)庫無法操作數(shù)據(jù)無法操作數(shù)據(jù)出現(xiàn)意外錯誤!出現(xiàn)意外錯誤!出現(xiàn)異常出現(xiàn)異常異常處理 異常:在運行時發(fā)生的錯誤 異常處理:預(yù)知可能發(fā)生的異常,在程序中編碼處理操作數(shù)據(jù)庫時可能發(fā)生異常:操作數(shù)據(jù)庫時可能發(fā)生異常: 無法打開數(shù)據(jù)庫無法打開數(shù)據(jù)庫 無法讀取數(shù)據(jù)無法讀取數(shù)據(jù) 數(shù)據(jù)操作出錯數(shù)據(jù)操作出錯 如何處理異常2-1 使用 trycatch 塊捕獲和處理異常try connection.Open(); / connection.
13、Close();catch(處理的異常類型處理的異常類型) / 錯誤處理代碼錯誤處理代碼處理異常的代碼處理異常的代碼出現(xiàn)異常,跳到出現(xiàn)異常,跳到catch否則正常向下執(zhí)行否則正常向下執(zhí)行出出現(xiàn)現(xiàn)異異常,常,跳跳轉(zhuǎn)轉(zhuǎn)連接關(guān)閉語句連接關(guān)閉語句將不被執(zhí)行將不被執(zhí)行包含可能出現(xiàn)異常的代碼包含可能出現(xiàn)異常的代碼如何處理異常2-2 finally 塊無論是否發(fā)生異常,都會執(zhí)行try connection.open(); / catch(處理的異常類型處理的異常類型) finally connection.Close();可能出現(xiàn)異常的代碼可能出現(xiàn)異常的代碼處理異常的代碼處理異常的代碼是否發(fā)生異常是否發(fā)生異
14、常數(shù)據(jù)庫連接都會關(guān)閉數(shù)據(jù)庫連接都會關(guān)閉必須執(zhí)行的語句必須執(zhí)行的語句放在放在 finally 中中無論如何都會執(zhí)行的代碼無論如何都會執(zhí)行的代碼connection.Open();Console.WriteLine(打開數(shù)據(jù)庫連接完畢打開數(shù)據(jù)庫連接完畢); connection.Close();Console.WriteLine(關(guān)閉數(shù)據(jù)庫連接完畢關(guān)閉數(shù)據(jù)庫連接完畢);處理異常 修改示例1的代碼,增加 try 語句塊演示示例演示示例2 2:使用:使用try-catch-finally小結(jié)如果如果 try 中中沒有出現(xiàn)異常沒有出現(xiàn)異常, 輸出哪幾行信息?輸出哪幾行信息?try / 可能出現(xiàn)異常的代碼
15、可能出現(xiàn)異常的代碼 Console.WriteLine(try塊塊); catch (Exception e) Console.WriteLine(catch塊塊);finally Console.WriteLine(finally塊塊);顯示顯示顯示顯示不顯示不顯示使用元素 添加config文件 提取連接字符串 string ConnString = ConfigurationManager.ConnectionStringsAutoLotSqlProvider.ConnectionString; 注:首先,添加對System.Configuration.dll 文件的引用;使用using
16、using (SqlConnection conn = new SqlConnection(ConnString) 練習(xí)測試AutoLot的數(shù)據(jù)連接 需求說明: 創(chuàng)建My AutoLot Base控制臺程序 新建用于操作數(shù)據(jù)庫的DBOperation類 在DBOperation類中自定義數(shù)據(jù)庫連接方法,實現(xiàn)連接和關(guān)閉AutoLot數(shù)據(jù)庫完成時間:完成時間:20分鐘分鐘練習(xí)為連接操作添加異常 需求說明: 為數(shù)據(jù)庫連接增加異常處理 將數(shù)據(jù)庫服務(wù)停止,再次測試連接操作完成時間:完成時間:15分鐘分鐘21.8.3 使用Command應(yīng)用程序應(yīng)用程序打開數(shù)據(jù)庫打開數(shù)據(jù)庫處理數(shù)據(jù)處理數(shù)據(jù)Connectio
17、n怎樣處理數(shù)據(jù)怎樣處理數(shù)據(jù)提交提交SQL命令并從數(shù)據(jù)源中返回結(jié)果命令并從數(shù)據(jù)源中返回結(jié)果 Command 的主要成員屬性名稱屬性名稱說說 明明Connection Command對象使用的數(shù)據(jù)庫連接對象使用的數(shù)據(jù)庫連接CommandText執(zhí)行的執(zhí)行的SQL語句語句方法方法說說 明明 ExecuteNonQuery執(zhí)行不返回行的語句,如執(zhí)行不返回行的語句,如UPDATE等等ExecuteReader返回返回DataReader對象對象ExecuteScalar返回單個值,如執(zhí)行返回單個值,如執(zhí)行COUNT(*)操作數(shù)據(jù)庫示例完成MySchoolBase系統(tǒng)的登錄功能1、驗證管理員的用戶名和密碼
18、是否存在2、驗證通過,顯示登錄成功信息使用 Command 步驟使用Command步驟:1、創(chuàng)建數(shù)據(jù)庫連接2、定義 SQL 語句3、創(chuàng)建 Command 對象4、執(zhí)行命令SqlConnection connection = new SqlConnection(connString);string sql = select count(*) from Admin where LoginId= + userName + and LoginPwd= + pwd + ;connection.Open(); / 打開數(shù)據(jù)庫連接打開數(shù)據(jù)庫連接SqlCommand command = new SqlComm
19、and(sql, connection);int num = (int)command.ExecuteScalar();示例示例 3 關(guān)鍵代碼:關(guān)鍵代碼:執(zhí)行命令前,必須打開數(shù)據(jù)庫連接!執(zhí)行命令前,必須打開數(shù)據(jù)庫連接!要進行類型轉(zhuǎn)換!要進行類型轉(zhuǎn)換!分析示例3定義一個定義一個 ValidateUser() 方法方法需要需要 Connection 和和 Command 對象對象分兩步實現(xiàn)驗證分兩步實現(xiàn)驗證:1、建立數(shù)據(jù)庫連接、建立數(shù)據(jù)庫連接2、驗證用戶是否存在、驗證用戶是否存在 定義一個定義一個 CheckLogin () 方法用于顯方法用于顯示示ValidateUser() 返回的結(jié)果信息返回
20、的結(jié)果信息分析驗證方法ValidateUser() 方法框架1、驗證的結(jié)果:通過,不通過、驗證的結(jié)果:通過,不通過返回值為返回值為 bool 型型2、方法需要:、方法需要: 用戶名,密碼用戶名,密碼值方式傳參值方式傳參3、不通過的原因:、不通過的原因: 用戶名或密碼不存在、其他原因用戶名或密碼不存在、其他原因引用方式傳參引用方式傳參 public bool ValidateUser (string userName, string pwd, ref string strMsg) 用戶驗證方法具體實現(xiàn) 第一步:創(chuàng)建數(shù)據(jù)庫連接第二步:查詢用戶是否存在第二步:查詢用戶是否存在SELECT COUNT
21、(*)ExecuteScalar() 方法查詢方法查詢ValidateUser() 方法具體實現(xiàn)方法具體實現(xiàn)演示示例演示示例3 3:檢查:檢查MySchoolBase用戶登錄用戶登錄21.9 使用 DataReader應(yīng)用程序應(yīng)用程序 毛毛,電信系,優(yōu)秀毛毛,電信系,優(yōu)秀 毛毛毛毛姓名:姓名:學(xué)校:學(xué)校:電信系電信系成績:成績:優(yōu)秀優(yōu)秀 怎樣讀取數(shù)據(jù)庫的數(shù)據(jù)?使用使用 DataReader 對象對象DataReader 對象 每次讀取一行數(shù)據(jù)命名空間命名空間對應(yīng)的對應(yīng)的 DataReader 對象對象System.Data.SqlClient SqlDataReaderSystem.Data.
22、OleDbOleDbDataReaderSystem.Data.Odbc OdbcDataReaderSystem.Data.OracleClientOracleDataReader使用 DataReader 查詢數(shù)據(jù)在數(shù)據(jù)庫操作類中創(chuàng)建讀取學(xué)生列表方法在數(shù)據(jù)庫操作類中創(chuàng)建讀取學(xué)生列表方法使用使用 DataReader 讀取學(xué)生學(xué)號和姓名讀取學(xué)生學(xué)號和姓名在業(yè)務(wù)信息類中創(chuàng)建輸出信息方法在業(yè)務(wù)信息類中創(chuàng)建輸出信息方法在菜單選項中添加輸出信息方法在菜單選項中添加輸出信息方法 如何查看學(xué)生學(xué)號、姓名列表? 演示示例:使用演示示例:使用 DataReader 讀取數(shù)據(jù)讀取數(shù)據(jù)示例2代碼分析 關(guān)鍵代碼回
23、顧:示例示例2 2源代碼源代碼command.ExecuteReader(); / 執(zhí)行查詢執(zhí)行查詢SqlDataReader reader = _dbOper.GetStudentList();/取得學(xué)生用戶列表取得學(xué)生用戶列表方法方法/循環(huán)讀取循環(huán)讀取DataReaderwhile (reader.Read() Console.Write(readerStudentNo + t); Console.WriteLine(readerStudentName); /關(guān)閉關(guān)閉DataReaderreader.Close();循環(huán)讀取數(shù)據(jù)行循環(huán)讀取數(shù)據(jù)行并顯示并顯示DataReader 的主要成員屬
24、性屬性說明說明HasRows 是否返回了結(jié)果是否返回了結(jié)果方法方法說明說明 Read前進到下一行記錄前進到下一行記錄Close關(guān)閉關(guān)閉 DataReader 對象對象 DataReader 的主要成員:DataReader 使用步驟小結(jié)使用 DataReader 檢索數(shù)據(jù)的步驟:1、創(chuàng)建 Command 對象2、調(diào)用 ExecuteReader() 創(chuàng)建 DataReader 對象3、使用 DataReader 的 Read() 方法逐行讀取數(shù)據(jù)4、讀取某列的數(shù)據(jù),(type)dataReader 5、關(guān)閉 DataReader 對象獲取某列的值:獲取某列的值:方法一:指定列的索引,從方法一:
25、指定列的索引,從0開始開始方法二:指定列名方法二:指定列名注意:注意:DataReader 使用后必須關(guān)閉使用后必須關(guān)閉指導(dǎo)實現(xiàn)學(xué)生姓名查詢 訓(xùn)練要點: DataReader對象的使用 需求說明: 當(dāng)管理員輸入操作鍵“3”時,給予輸入學(xué)號的提示,根據(jù)輸入查詢Student表中匹配學(xué)號的學(xué)生姓名,將學(xué)生學(xué)號和姓名一并輸出講解需求說明講解需求說明 實現(xiàn)思路 1、在數(shù)據(jù)庫操作類中創(chuàng)建查詢學(xué)生姓名的方法 2、使用StringBuilder拼寫帶條件的Sql語句 3、使用DataReader對象的Read()方法讀取學(xué)生姓名并返回 4、在業(yè)務(wù)類中調(diào)用查詢方法并輸出返回的學(xué)生姓名 難點指導(dǎo): 執(zhí)行Comm
26、and對象的ExecuteReader()方法得到Reader對象 學(xué)號為主鍵,只能讀取至多一行信息,固使用if語句完成時間:完成時間:25分鐘分鐘指導(dǎo)實現(xiàn)學(xué)生姓名查詢指導(dǎo)實現(xiàn)學(xué)生信息查詢 訓(xùn)練要點: DataReader對象的使用 Sql語句的拼寫 需求說明: 當(dāng)管理員輸入操作鍵“4”時,給予輸入學(xué)生姓名的提示,根據(jù)姓名模糊查詢Student表中除密碼外的全部信息并顯示,年級根據(jù)實際編號顯示年級名稱講解需求說明講解需求說明 實現(xiàn)思路 1、在數(shù)據(jù)庫操作類中創(chuàng)建查詢學(xué)生信息的方法 2、使用StringBuilder拼寫內(nèi)連接的Sql語句 3、使用DataReader對象的Read()方法循環(huán)讀取
27、學(xué)生信息 4、在業(yè)務(wù)類中調(diào)用查詢學(xué)生信息的方法并輸出 關(guān)鍵代碼:完成時間:完成時間:25分鐘分鐘指導(dǎo)實現(xiàn)學(xué)生信息查詢SELECT A.StudentNo ,A.StudentName ,A.Sex ,B.GradeName ,A.Phone ,A.Adress ,A.BornDate ,A.EmailFROM Student as A ,Grade as BWHERE StudentName like %學(xué)生姓名學(xué)生姓名%AND A.GradeId=B.GradeId操作數(shù)據(jù)應(yīng)用程序應(yīng)用程序毛毛,電信系,良好毛毛,電信系,良好 毛毛毛毛姓名:姓名:系部:系部:電信系電信系成績:成績:良好良好
28、如何對數(shù)據(jù)庫的數(shù)據(jù)進行增刪改?使用使用 ExecuteNonQuery() 方法方法操作數(shù)據(jù)示例1、構(gòu)件增加年級信息的、構(gòu)件增加年級信息的Sql語句語句2、創(chuàng)建、創(chuàng)建SqlCommand對象對象3、使用、使用 ExecuteNonQuery() 方法向數(shù)據(jù)庫增方法向數(shù)據(jù)庫增加記錄加記錄4、處理返回結(jié)果、處理返回結(jié)果如何實現(xiàn)新增年級信息呢?如何實現(xiàn)新增年級信息呢? 演示示例:演示示例:向數(shù)據(jù)庫增加記錄向數(shù)據(jù)庫增加記錄示例 3代碼分析 關(guān)鍵代碼回顧:示例示例3 3源代碼源代碼StringBuilder sb = new StringBuilder();sb.AppendLine(INSERT IN
29、TO);sb.AppendLine( Grade);sb.AppendLine(VALUES);sb.AppendLine( ( + gradeName + );/ 創(chuàng)建創(chuàng)建command對象對象SqlCommand command = new SqlCommand(sb.ToString(), conn);/ 執(zhí)行命令執(zhí)行命令command.ExecuteNonQuery(); 返回受影響記錄的行數(shù)返回受影響記錄的行數(shù)單引號的位置單引號的位置ExecuteNonQuery()方法小結(jié) 該方法執(zhí)行指定的 sql 語句 返回受影響的行數(shù)使用使用 ExecuteNonQuery() 的步驟小結(jié):的
30、步驟小結(jié):1、創(chuàng)建、創(chuàng)建 Connection 對象對象2、定義、定義sql 語句語句3、創(chuàng)建、創(chuàng)建 Command 對象對象4、執(zhí)行、執(zhí)行 ExecuteNonQuery() 方法方法5、根據(jù)返回的結(jié)果進行處理、根據(jù)返回的結(jié)果進行處理練習(xí)實現(xiàn)年級信息的創(chuàng)建 需求說明: 實現(xiàn)將管理員輸入的年級名稱添加到年級表中,并輸出添加結(jié)果提示完成時間:完成時間:20分鐘分鐘指導(dǎo)實現(xiàn)出生日的修改 訓(xùn)練要點: 類型轉(zhuǎn)換 Command對象的ExecuteNonQuery()方法 需求說明: 當(dāng)管理員輸入操作鍵“6”時,給予輸入要修改的學(xué)生學(xué)號和修改后的出生日的提示,根據(jù)學(xué)號更新Student表中的出生日 出生
31、日輸入格式錯誤、更新成功以及異常發(fā)生給出相應(yīng)提示信息 確認(rèn)數(shù)據(jù)庫中的數(shù)據(jù)被成功更新講解需求說明講解需求說明 實現(xiàn)思路 1、在數(shù)據(jù)庫操作類中創(chuàng)建更新方法 2、使用StringBuilder拼寫條件更新的Sql語句 3、使用Command對象的ExecuteNonQuery()方法根據(jù)學(xué)號更新出生日 4、在業(yè)務(wù)類中調(diào)用更新方法,使用異常處理捕獲輸入錯誤的出生日 難點指導(dǎo): 執(zhí)行Command對象的ExecuteNonQuery()方法執(zhí)行對數(shù)據(jù)庫的修改操作 可以使用Convert.ToDateTime()方法轉(zhuǎn)換管理員輸入的出生日完成時間:完成時間:25分鐘分鐘指導(dǎo)實現(xiàn)出生日的修改練習(xí)實現(xiàn)學(xué)生信息
32、的刪除 需求說明: 當(dāng)管理員輸入操作鍵“7”時,給予輸入刪除的學(xué)生學(xué)號的提示 根據(jù)學(xué)號刪除Student表中的學(xué)生信息 確認(rèn)數(shù)據(jù)庫中的數(shù)據(jù)被成功刪除完成時間:完成時間:20分鐘分鐘21.10 構(gòu)建可重用的數(shù)據(jù)訪問庫 構(gòu)建AutoLotDAL.dll 類庫項目 /連接數(shù)據(jù)庫 private SqlConnection conn = null; public void OpenConnection(string connString) conn = new SqlConnection(connString); conn.Open(); public void CloseConnection() conn.Close(); /只讀查詢 返回DataReader public SqlDataR
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國車用儀表制造市場深度分析及投資戰(zhàn)略咨詢報告
- 健康生活課件
- 蕭山區(qū)指紋門禁管理辦法
- 薪酬福利管理辦法中體檢
- 蛋糕店冷庫管理辦法細(xì)則
- 衡水土地合作社管理辦法
- 醫(yī)療保障管理課件
- 裝修質(zhì)量保證金管理辦法
- 西安市公用住房管理辦法
- 覃塘區(qū)留守兒童管理辦法
- 社區(qū)工作者考試(選擇題200題)帶答案
- 2025年高校教師資格證之高等教育心理學(xué)通關(guān)題庫附帶答案
- 2025至2030全球及中國隔膜式氫氣壓縮機行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 社區(qū)上半年安全生產(chǎn)工作總結(jié)
- 2025年包頭包鋼集團招聘筆試備考題庫(帶答案詳解)
- 初級保育員培訓(xùn)課件
- 2025年遼寧、吉林、黑龍江、內(nèi)蒙古四省高考物理真題(含答案)
- DB4201∕T 694-2024 押運行業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化基本規(guī)范
- 2025至2030中國精神病醫(yī)院行業(yè)發(fā)展分析及發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 裝載機司機安全培訓(xùn)試題及答案
- 2025年河南省中考英語試卷及答案
評論
0/150
提交評論