国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
14.2.1 ADO.NET
14.2  實(shí)例用到的開發(fā)技術(shù)
在設(shè)計(jì)理財(cái)助手軟件時(shí),需要了解掌握地基本技術(shù)有:ADO.NET、C#中數(shù)據(jù)訪問類的用法、數(shù)據(jù)訪問的一般過程等。
14.2.1  什么叫ADO.NET
ADO.NET是.NET FrameWork SDK提供給.NET開發(fā)語言進(jìn)行數(shù)據(jù)庫開發(fā)的一個(gè)系列類庫的集合。它可以有效地從數(shù)據(jù)操作中將數(shù)據(jù)訪問分解為多個(gè)可以單獨(dú)使用或前后使用的不連續(xù)組件。
1.ADO.NET的組成
微軟設(shè)計(jì)ADO.NET組件的目的是為了從數(shù)據(jù)操作中分解出數(shù)據(jù)訪問。完成此任務(wù)的是ADO.NET的兩個(gè)核心組件。
* .NET數(shù)據(jù)提供程序:實(shí)現(xiàn)數(shù)據(jù)操作和對(duì)數(shù)據(jù)的快速讀寫訪問。
* DataSet數(shù)據(jù)集:在內(nèi)存中的、有著豐富功能的數(shù)據(jù)緩沖區(qū),是一個(gè)記錄集的集合。
在Visual C# 2005中,.NET數(shù)據(jù)提供程序有以下5種:
* Microsoft OLE DB數(shù)據(jù)提供程序。
* Microsoft ODBC數(shù)據(jù)提供程序。
* Microsoft SQL Server數(shù)據(jù)提供程序。
* Oracle數(shù)據(jù)提供程序。
* 其他數(shù)據(jù)提供程序。
而每種.NET數(shù)據(jù)提供程序都包含了以下4種對(duì)象。
* Connection對(duì)象:提供與數(shù)據(jù)源的連接。
* DataAdapter對(duì)象:提供連接DataSet對(duì)象和數(shù)據(jù)源的橋梁。
* Command對(duì)象:提供對(duì)數(shù)據(jù)庫命令的訪問,這些命令可用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲(chǔ)過程、發(fā)送或檢索參數(shù)信息。
* DataReader對(duì)象:從數(shù)據(jù)源中提供高性能的數(shù)據(jù)流。
DataSet數(shù)據(jù)集是ADO.NET的斷開式結(jié)構(gòu)的核心組件,它在與數(shù)據(jù)源斷開的緩存中存儲(chǔ)數(shù)據(jù),從而實(shí)現(xiàn)了獨(dú)立于任何數(shù)據(jù)源的數(shù)據(jù)訪問。因此,它可以用于多種不同的數(shù)據(jù)源,包括XML數(shù)據(jù)源、遠(yuǎn)程的或本地的數(shù)據(jù)庫。DataSet包含一個(gè)或多個(gè)DataTable對(duì)象的集合,每個(gè)DataTable對(duì)象包含DataRow對(duì)象、DataColumn對(duì)象和Constraint對(duì)象,分別存放數(shù)據(jù)表的行信息、列信息及約束信息。此外DataSet對(duì)象還包含DataRelation對(duì)象,用于表示表間關(guān)系。它們的關(guān)系如圖14-1所示。
 
圖14-1  .NET數(shù)據(jù)提供程序和DataSet數(shù)據(jù)集結(jié)構(gòu)圖
2.ADO.NET連接數(shù)據(jù)庫的過程
當(dāng)應(yīng)用程序需要連接數(shù)據(jù)庫時(shí),首先需要用Connection對(duì)象連接數(shù)據(jù)庫,然后用Command對(duì)象對(duì)數(shù)據(jù)庫進(jìn)行操作,Command對(duì)象的執(zhí)行結(jié)果可以被DataReader對(duì)象讀取,也可以被DataAdapter對(duì)象用來填充DataSet對(duì)象。當(dāng)DataReader讀取時(shí),只讀一條數(shù)據(jù),而DataAdapter對(duì)象則把所有數(shù)據(jù)填充給DataSet。因此DataAdapter對(duì)象是DataSet對(duì)象與數(shù)據(jù)庫的橋梁。這個(gè)過程可以用圖14-2表示。
 
圖14-2  ADO.NET的結(jié)構(gòu)圖
3.ADO.NET的命名空間
命名空間(NameSpace)記錄了對(duì)象的名稱與所在的路徑。使用ADO.NET中的對(duì)象時(shí),必須首先聲明命名空間,這樣編譯器才知道到哪里去加載這些對(duì)象。根據(jù)ADO.NET數(shù)據(jù)提供程序和主要數(shù)據(jù)對(duì)象,ADO.NET的命名空間可分為基本對(duì)象類、數(shù)據(jù)提供程序?qū)ο箢惡洼o助對(duì)象類等。
* System.Data:此對(duì)象類別地址包含大部分的ADO.NET的基礎(chǔ)對(duì)象,如DataSet、DataTable、DataRow等,故在編寫ADO.NET程序時(shí),必須先聲明。
* System.Data.OLEDB:當(dāng)使用Microsoft OLE DB.NET數(shù)據(jù)提供程序連接SQL Server 6.5以下版本數(shù)據(jù)庫或其他數(shù)據(jù)庫時(shí),必須首先聲明此類對(duì)象。
* System.Data.SQLClient:當(dāng)使用Microsoft SQL Server.NET數(shù)據(jù)提供程序連接SQL Server 7.0以上版本數(shù)據(jù)庫時(shí),必須首先聲明此類對(duì)象。
* System.Data.Odbc:當(dāng)使用Microsoft ODBC.NET數(shù)據(jù)提供程序連接ODBC數(shù)據(jù)源連接的數(shù)據(jù)庫時(shí),必須首先聲明此類對(duì)象。
* System.Data.OracleClient:當(dāng)使用Oracle.NET數(shù)據(jù)提供程序連接Oracle數(shù)據(jù)庫時(shí),必須首先聲明此類對(duì)象。
* System.Data.Common:包含由.NET Framework數(shù)據(jù)提供程序共享的類。數(shù)據(jù)提供程序描述一個(gè)類的集合,這些類用于在托管空間中訪問數(shù)據(jù)源,例如數(shù)據(jù)庫。
* System.Data.Sql:支持特定于SQL Server的功能的類。
* System.Data.SqlTypes:提供一些類,它們?cè)赟QL Server 內(nèi)部用于本機(jī)數(shù)據(jù)類型。這些類提供了其他數(shù)據(jù)類型的更安全、更快速的替代方式。
* Microsoft.SqlServer.Server:專用于Microsoft .NET Framework公共語言運(yùn)行庫(CLR)與Microsoft SQL Server和SQL Server數(shù)據(jù)庫引擎進(jìn)程執(zhí)行環(huán)境的集成的類、接口和枚舉。
* System.Transactions:允許用戶編寫自己的事務(wù)性應(yīng)用程序和資源管理器的類。具體來說,可以創(chuàng)建事務(wù)并和一個(gè)或多個(gè)參與者參與事務(wù)(本地或分布式)。
圖14-3顯示了ADO.NET命名空間的結(jié)構(gòu)。
14.2.2  ADO.NET中的類
ADO.NET中的類很多,從一次數(shù)據(jù)庫訪問過程看,一般需要4個(gè)或5個(gè)類,它們的順序如圖14-4所示。
 
圖14-4  數(shù)據(jù)庫訪問中類的順序
在使用這些類時(shí),除了基礎(chǔ)類DataSet外,其他類的數(shù)據(jù)提供程序要一致,如SQLConnection、SQLCommand、SQLDataReader是一致的,OLEDbConnection、OLEDbCommand、OLEDbDataAdapter是一致的。
下面我們就以O(shè)LEDB數(shù)據(jù)提供程序?yàn)槔齺碚f明這些類。
1.基礎(chǔ)類DataSet
這個(gè)類是數(shù)據(jù)在內(nèi)存中駐留時(shí)的表示形式。無論什么數(shù)據(jù)源,它在內(nèi)存中的數(shù)據(jù)表示是一致的,因此它可以連接任何數(shù)據(jù)源。DataSet數(shù)據(jù)集可以包含任意數(shù)量的數(shù)據(jù)表,以及所有表的約束、索引和關(guān)系。它沒有與數(shù)據(jù)源聯(lián)系的能力,因此在使用DataSet對(duì)象之前,必須要有一個(gè)可以建立初始化數(shù)據(jù)的對(duì)象,即DataAdapter對(duì)象。
該類的主要屬性和方法如表14-1。
表14-1  DataSet類的主要屬性和方法
類    別
名    稱
說    明
屬性
DataSetName
獲取或設(shè)置當(dāng)前DataSet的名稱
Namespace
獲取或設(shè)置DataSet的命名空間
Tables
獲取包含在DataSet中的表的集合
Prefix
獲取或設(shè)置一個(gè)XML前綴,該前綴是DataSet的命名空間的別名
方法
Clear
通過移除所有表中的所有行來清除數(shù)據(jù)
Clone
復(fù)制DataSet的結(jié)構(gòu),不復(fù)制任何數(shù)據(jù)
Copy
復(fù)制該DataSet的結(jié)構(gòu)和數(shù)據(jù)
ReadXml
將XML架構(gòu)和數(shù)據(jù)讀入DataSet
ReadXmlSchema
將XML架構(gòu)讀入DataSet
WriteXml
從DataSet寫XML數(shù)據(jù),還可以選擇寫架構(gòu)
WriteXmlSchema
寫XML架構(gòu)形式的DataSet結(jié)構(gòu)
2.OleDbDataAdapter
這個(gè)類可以建立并初始化數(shù)據(jù)集(即DataSet),與DataSet對(duì)象結(jié)合起來對(duì)數(shù)據(jù)源執(zhí)行SQL命令,提供DataSet對(duì)象所需要的存取數(shù)據(jù),可視為DataSet對(duì)象的操作核心,是DataSet對(duì)象與數(shù)據(jù)操作對(duì)象之間的溝通媒介。
該類的主要屬性和方法如表14-2所示。
表14-2  OleDbDataAdapter類的主要屬性和方法
類    別
名    稱
說    明
屬性
DeleteCommand
獲取或設(shè)置SQL語句或存儲(chǔ)過程,用于從數(shù)據(jù)集中刪除記錄
SelectCommand
獲取或設(shè)置SQL語句或存儲(chǔ)過程,用于選擇數(shù)據(jù)源中的記錄
UpdateCommand
獲取或設(shè)置SQL語句或存儲(chǔ)過程,用于更新數(shù)據(jù)源中的記錄
InsertCommand
獲取或設(shè)置SQL語句或存儲(chǔ)過程,用于將新記錄插入到數(shù)據(jù)源中
方法
Fill
在DataSet中添加或刷新行,以便與ADO Recordset或Record對(duì)象中的行相匹配
Update
為DataSet中每個(gè)已插入、已更新或已刪除的行調(diào)用相應(yīng)的INSERT、UPDATE或DELETE語句
GetFillParameters
獲取當(dāng)執(zhí)行SQL SELECT語句時(shí)由用戶設(shè)置的參數(shù)
3.OleDbDataReader
提供一個(gè)單向向前移動(dòng)且只讀的記錄集合,可以讀取由Command對(duì)象執(zhí)行命令所產(chǎn)生的數(shù)據(jù),只能與Command對(duì)象一起使用。
該類的主要屬性和方法如表14-3所示。
表14-3  OleDbDataReader類的主要屬性和方法
類    別
名    稱
說    明
屬性
Depth
獲取一個(gè)值,用于指示當(dāng)前行的嵌套深度
FieldCount
獲取當(dāng)前行中的列數(shù)
HasRows
獲取一個(gè)值,用于指示OleDbDataReader是否包含一行或多行
IsClosed
指示是否可關(guān)閉數(shù)據(jù)讀取器
Item
獲取以本機(jī)格式表示的列的值
RecordsAffected
通過執(zhí)行SQL語句獲取更改、插入或刪除的行數(shù)
方法
GetBoolean
獲取指定列的布爾值形式的值
GetChar
獲取指定列的字符形式的值
GetDateTime
獲取指定列的DateTime對(duì)象形式的值
GetDecimal
獲取指定列的Decimal對(duì)象形式的值
GetDouble
獲取指定列的雙精度浮點(diǎn)數(shù)形式的值
GetFloat
獲取指定列的單精度浮點(diǎn)數(shù)形式的值
GetGuid
獲取指定列的值作為全局唯一標(biāo)識(shí)符(GUID)
GetInt16
獲取指定列的16位有符號(hào)整數(shù)形式的值
GetInt32
獲取指定列的32位有符號(hào)整數(shù)形式的值
GetString
獲取指定列的字符串形式的值
IsDBNull
獲取一個(gè)值,該值指示列中是否包含不存在的或已丟失的值
Read
使OleDbDataReader前進(jìn)到下一條記錄
4.OleDbCommand
這個(gè)類可以操作數(shù)據(jù)源文件,對(duì)數(shù)據(jù)源下達(dá)操作數(shù)據(jù)庫的命令,即傳送SQL命令,執(zhí)行Action Query命令。
該類的主要屬性和方法如表14-4所示。
表14-4  OleDbCommand類的主要屬性和方法
類    別
名    稱
說    明
屬性
CommandText
獲取或設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的SQL語句或存儲(chǔ)過程
CommandTimeout
獲取或設(shè)置在終止對(duì)執(zhí)行命令的嘗試并生成錯(cuò)誤之前的等待時(shí)間
Connection
獲取或設(shè)置OleDbCommand的此實(shí)例使用的OleDbConnection
方法
ExecuteNonQuery
針對(duì)Connection執(zhí)行SQL 語句并返回受影響的行數(shù)
ExecuteReader
將CommandText發(fā)送到Connection并生成一個(gè) OleDbDataReader
ExecuteScalar
執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列,忽略其他列或行
ResetCommandTimeout
將CommandTimeout屬性重置為默認(rèn)值
5.OleDbConnection
該類主要負(fù)責(zé)與數(shù)據(jù)源的連接,建立程序與數(shù)據(jù)源之間的聯(lián)系,這是數(shù)據(jù)庫操作的第一步。
該類的主要屬性和方法如表14-5所示。
表14-5  OleDbCommand類的主要屬性和方法
類    別
名    稱
說    明
屬性
ConnectionString
獲取或設(shè)置用于打開數(shù)據(jù)庫的字符串
ConnectionTimeout
獲取在嘗試建立連接時(shí)終止嘗試并生成錯(cuò)誤之前所等待的時(shí)間
Database
獲取當(dāng)前數(shù)據(jù)庫或連接打開后要使用的數(shù)據(jù)庫的名稱
DataSource
獲取數(shù)據(jù)源的服務(wù)器名或文件名
Provider
獲取在連接字符串的“Provider = ”子句中指定的OLE DB提供程序的名稱
State
獲取連接的當(dāng)前狀態(tài)
方法
Close
關(guān)閉到數(shù)據(jù)源的連接
Open
使用ConnectionString所指定的屬性設(shè)置打開數(shù)據(jù)庫連接
以上是以O(shè)LEDB數(shù)據(jù)提供程序?yàn)槔齺碚f明ADO.NET中的類,其他數(shù)據(jù)提供程序中的類屬性與方法與此類似,這里就不再一一列舉。在每一
種數(shù)據(jù)提供程序的類中,除了DataSet類是公用類外,其他類均需要相應(yīng)的命名空間支持,而且不可互相串用
14.2.3  如何使用ADO.NET
ADO.NET處理數(shù)據(jù)庫數(shù)據(jù)一般需要4個(gè)步驟。
1.使用Connection連接數(shù)據(jù)庫
ADO.NET處理數(shù)據(jù)庫數(shù)據(jù)的第一步是連接到數(shù)據(jù)庫,只有先連接上數(shù)據(jù)庫才能進(jìn)行后續(xù)操作。該步驟用到Connection對(duì)象,該對(duì)象負(fù)責(zé)建立和控制用戶應(yīng)用程序與數(shù)據(jù)庫之間的連接。一個(gè)Connection對(duì)象表示到數(shù)據(jù)源的一個(gè)唯一的連接,在客戶端-服務(wù)器(即C/S)數(shù)據(jù)庫系統(tǒng)中,它等效與一個(gè)到服務(wù)器的網(wǎng)絡(luò)連接。
所有的連接都要用到連接字符串ConnectionString,該字符串是使用分號(hào)隔開的多項(xiàng)信息,其內(nèi)容隨著數(shù)據(jù)庫類型和訪問內(nèi)容的變化而變化。不同的數(shù)據(jù)庫有著不同內(nèi)容的連接字符串,下面就列舉兩種常用數(shù)據(jù)庫的連接字符串:Access和SQL Server。
1)Access數(shù)據(jù)庫連接字符串
 
在連接Access數(shù)據(jù)庫時(shí),Provider和Data Source是必須要設(shè)置的參數(shù),其他參數(shù)可以根據(jù)情況省略。
SQL Server數(shù)據(jù)庫連接字符串:
 
使用Connection對(duì)象連接數(shù)據(jù)庫的方法一般如下(SQL Server數(shù)據(jù)庫):
 
2.執(zhí)行數(shù)據(jù)庫命令
執(zhí)行數(shù)據(jù)庫命令由Command對(duì)象完成,它的任務(wù)就是執(zhí)行SQL語句,然后把執(zhí)行的結(jié)果傳給下一級(jí)對(duì)象:DataAdapter或DataReader對(duì)象。它有3種執(zhí)行方式:ExecuteNonQuery、ExecuteReader、ExecuteScalar。在定義Command對(duì)象時(shí),一般要有Connection對(duì)象支持,基本用法如下:
 
3.讀取數(shù)據(jù)
Command對(duì)象執(zhí)行后,由數(shù)據(jù)讀取對(duì)象DataReader和數(shù)據(jù)匹配對(duì)象DataAdapter接收數(shù)據(jù),DataReader對(duì)象里的數(shù)據(jù)可以直接為應(yīng)用程序使用,而DataAdapter對(duì)象則建立和初始化數(shù)據(jù)表,然后填充給DataSet對(duì)象為應(yīng)用程序使用。
Command對(duì)象通過執(zhí)行ExecuteReader方法就可將數(shù)據(jù)傳給DataReader對(duì)象,這在上一步驟的例子中已經(jīng)說明,如下:
  
Command對(duì)象將數(shù)據(jù)傳給DataAdapter對(duì)象的方法是要通過DataAdapter對(duì)象的SelectCommand、DeleteCommand、UpdateCommand、InsertCommand屬性進(jìn)行傳遞;而DataAdapter對(duì)象向DataSet對(duì)象傳遞數(shù)據(jù)則需要Fill方法,具體方法如下:
  
4.對(duì)數(shù)據(jù)進(jìn)行處理
讀取數(shù)據(jù)時(shí)有3種方法:使用DataReader對(duì)象讀??;使用DataAdapter對(duì)象讀取數(shù)據(jù)再傳給DataSet對(duì)象,然后再處理;使用Command對(duì)象直接修改數(shù)據(jù)庫。
1)用DataReader對(duì)象讀取數(shù)據(jù)源
DataReader對(duì)象用于從數(shù)據(jù)庫中讀取由SELECT命令返回的只讀、只進(jìn)的數(shù)據(jù)流,它僅對(duì)數(shù)據(jù)庫檢索的數(shù)據(jù)提供向前的只讀指針。采取這種方式每次處理時(shí)在內(nèi)存中只有一行內(nèi)容,所以不僅提高了應(yīng)用程序的性能,還有助于減少系統(tǒng)的開銷。在下列情況下,要在應(yīng)用程序中使用DataReader:
不需要緩存數(shù)據(jù)。
要處理的結(jié)果集太大,內(nèi)存中放不下。
一旦需要以僅向前、只讀方式快速訪問數(shù)據(jù)。
使用DataReader的基本過程是:首先要建立與數(shù)據(jù)庫的連接,然后設(shè)定好Command對(duì)象并執(zhí)行SQL命令,以連接SQL Server 2000為例,因此要定義一個(gè)SqlDataReader對(duì)象來接收Command對(duì)象執(zhí)行ExecuteReader方法的返回?cái)?shù)據(jù)集。然后就可以調(diào)用DataReader的GetValue或者GetInt32等方法來獲取某列的值了。如果需要讀取下一條數(shù)據(jù),使用DataReader對(duì)象的Read方法。最后,調(diào)用Close方法關(guān)閉DataReader對(duì)象。其基本代碼如下:
 
2)使用DataSet對(duì)象讀取數(shù)據(jù)源
由于DataReader對(duì)象僅僅用于從數(shù)據(jù)庫中讀取數(shù)據(jù),因此修改數(shù)據(jù)庫時(shí)不使用該對(duì)象。對(duì)數(shù)據(jù)進(jìn)行處理,尤其是當(dāng)需要修改數(shù)據(jù)時(shí),往往使用DataSet對(duì)象。
DataSet的結(jié)構(gòu)和關(guān)系型數(shù)據(jù)庫很類似,具有表、行、列等屬性。主要用于在內(nèi)存中存放數(shù)據(jù),可以一次讀取整張數(shù)據(jù)表的內(nèi)容。其基本結(jié)構(gòu)如圖14-5所示。
使用DataSet對(duì)象必須要有一個(gè)可以建立初始化數(shù)據(jù)的對(duì)象,即DataAdapter對(duì)象。DataSet對(duì)象可以存放DataAdapter對(duì)象執(zhí)行工作后所取得的數(shù)據(jù)。它也是一個(gè)集合對(duì)象,有許多DataTable對(duì)象組成,應(yīng)用程序可以通過DataTable對(duì)象和DataTable對(duì)象內(nèi)的Column對(duì)象(列數(shù)據(jù)對(duì)象)、Row對(duì)象(行數(shù)據(jù)對(duì)象)的操作讀取數(shù)據(jù)。下面簡(jiǎn)要介紹這幾種對(duì)象的常用屬性集方法。
DataTable對(duì)象的常用屬性及常用方法如下。
TableName屬性:對(duì)象名稱。
Rows屬性:對(duì)象中的記錄集合。
Name屬性:數(shù)據(jù)表的名稱。
Column屬性:對(duì)象中的字段集合。
 
NewRow方法:增加一條記錄。
Clear方法:清除所有數(shù)據(jù)。
Column對(duì)象的常用屬性及常用方法有。
Count屬性:DataTable(數(shù)據(jù)表)對(duì)象中的字段數(shù)。
DataType屬性:該列的數(shù)據(jù)類型。
ColumnName屬性:該列的名稱。
AllNull屬性:該表字段是否接受空值。
Row對(duì)象的常用屬性及常用方法有。
RowState屬性:行對(duì)象的狀態(tài)。
ItemArray屬性:以數(shù)組方式讀取行內(nèi)數(shù)據(jù)。
Item():讀取行內(nèi)的數(shù)據(jù),如Item(2),就是讀取第3個(gè)數(shù)據(jù)。
使用DataSet對(duì)象讀取數(shù)據(jù)的方法一般如下:
 
 
除了可以進(jìn)行數(shù)據(jù)查詢外,使用DataSet還可對(duì)數(shù)據(jù)庫進(jìn)行添加、刪除和修改等操作,修改以后的數(shù)據(jù)可以被接受,也可以不被接受,即取消修改。
在用DataSet對(duì)象處理數(shù)據(jù)時(shí),根據(jù)不同的情況對(duì)數(shù)據(jù)進(jìn)行查詢、修改、刪除等操作。
① 修改:當(dāng)修改某一條記錄中的某一個(gè)數(shù)據(jù)時(shí),首先對(duì)DataRow對(duì)象使用BeginEdit()方法,表示要對(duì)該行進(jìn)行編輯操作,在編輯中禁止約束檢查,然后編輯,修改數(shù)據(jù),最后使用EndEDit()方法,結(jié)束編輯,把編輯的結(jié)果通過DataSet傳給數(shù)據(jù)庫。具體代碼如下:
  
② 添加:當(dāng)需要為某一個(gè)記錄表添加一行數(shù)據(jù)時(shí),首先調(diào)用DataTable對(duì)象的NewRow()方法,創(chuàng)建一個(gè)新的空行,然后對(duì)該行中的每一個(gè)字段進(jìn)行必要的賦值,最后調(diào)用DataRow對(duì)象的Add()方法將該行添加到表中。具體代碼如下:
  
③ 刪除:當(dāng)需要?jiǎng)h除表中的某一行數(shù)據(jù)時(shí),調(diào)用DataRow對(duì)象的Delete()方法來實(shí)現(xiàn),也可以調(diào)用DataRowCollection的Remove()方法。Remove方法是從DataRowCollection中刪除DataRow對(duì)象;而Delete()方法只是將該行的標(biāo)記刪除,在數(shù)據(jù)庫中并沒有刪除。當(dāng)應(yīng)用程序調(diào)用AcceptChanges()方法時(shí),才會(huì)發(fā)生實(shí)際上的刪除。通常是使用DataRow對(duì)象的Delete()方法。具體代碼如下:
  
④ 保存:當(dāng)接受了數(shù)據(jù)的修改后,如果想保存到數(shù)據(jù)庫,則需要調(diào)用DataAdapter對(duì)象的Update()方法。這些更改是用SQL語句發(fā)回到數(shù)據(jù)庫的,必須要用一個(gè)Command對(duì)象來執(zhí)行SQL語句,所以一般在創(chuàng)建DataAdapter對(duì)象后就創(chuàng)建一個(gè)Command對(duì)象。具體代碼如下:
 
3)使用Command直接修改數(shù)據(jù)
在這里常用的兩個(gè)Command對(duì)象的方法是ExecuteScalar()和ExecuteNonQuery()。
ExecuteScalar()方法主要用于SELECT語句查詢,它不對(duì)數(shù)據(jù)庫進(jìn)行更改,有返回值。ExecuteNonQuery()方法可以執(zhí)行SQL語句中的更新(UPDATE)、刪除(DELETE)、添加(INSERT)命令,它不帶有返回值。其用法如下:
  
其他的數(shù)據(jù)操作也可以用ExecuteNonQuery()方法進(jìn)行操作。
 
圖14-3  ADO.NET命名空間的結(jié)構(gòu)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ADO.NET對(duì)象模型 - 技術(shù)改變世界!學(xué)習(xí)改變自己! - 博客園
ADO.NET中的五個(gè)主要對(duì)象 - 激情 希望 斗志昂揚(yáng) - 博客園
第15章
ASP.net連接SQL數(shù)據(jù)庫的源代碼
ADO.NET中5大對(duì)象簡(jiǎn)介
ADO.NET入門教程(八) 深入理解DataAdapter(上)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服