ADONET查詢和檢索數(shù)據(jù)學(xué)習(xí)教案_第1頁(yè)
ADONET查詢和檢索數(shù)據(jù)學(xué)習(xí)教案_第2頁(yè)
ADONET查詢和檢索數(shù)據(jù)學(xué)習(xí)教案_第3頁(yè)
ADONET查詢和檢索數(shù)據(jù)學(xué)習(xí)教案_第4頁(yè)
ADONET查詢和檢索數(shù)據(jù)學(xué)習(xí)教案_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1ADONET查詢和檢索數(shù)據(jù)查詢和檢索數(shù)據(jù)第1頁(yè)/共28頁(yè)第2頁(yè)/共28頁(yè)第3頁(yè)/共28頁(yè)DataSet是存儲(chǔ)從數(shù)據(jù)庫(kù)檢索到的數(shù)據(jù)的對(duì)象是零個(gè)或多個(gè)表對(duì)象的集合,這些表對(duì)象由數(shù)據(jù)行和列、約束和有關(guān)表中數(shù)據(jù)關(guān)系的信息組成不直接與數(shù)據(jù)庫(kù)交互既可容納數(shù)據(jù)庫(kù)的數(shù)據(jù),也可以容納非數(shù)據(jù)庫(kù)的數(shù)據(jù)源DataSet 類(lèi)的層次結(jié)構(gòu)DataSetDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollectionDataTable第4頁(yè)/共28頁(yè)DataTableCollection 包含特定數(shù)據(jù)集的所有 DataTable 對(duì)象D

2、ataTable 表示數(shù)據(jù)集中的一個(gè)表DataColumnCollection 表示 DataTable 對(duì)象的結(jié)構(gòu)DataRowCollection 表示 DataTable 對(duì)象中的實(shí)際數(shù)據(jù)行DataColumn 表示 DataTable 對(duì)象中列的結(jié)構(gòu)DataRow 表示 DataTable 對(duì)象中的一個(gè)數(shù)據(jù)行DataSet 層次結(jié)構(gòu)中的類(lèi)第5頁(yè)/共28頁(yè)客戶端服務(wù)器將數(shù)據(jù)發(fā)送到數(shù)據(jù)集客戶端修改數(shù)據(jù)集將數(shù)據(jù)集傳遞給客戶端將修改后的數(shù)據(jù)集傳遞給服務(wù)器客戶端向服務(wù)器請(qǐng)求數(shù)據(jù)第6頁(yè)/共28頁(yè)數(shù)據(jù)集的類(lèi)數(shù)據(jù)集的類(lèi)型型類(lèi)型化數(shù)據(jù)集非類(lèi)型化數(shù)據(jù)集它是一個(gè)生成類(lèi),繼承了基類(lèi) DataSet 的所有方法

3、、事件和屬性表和列只能以集合的形式公開(kāi),而不能用于借助 XML 結(jié)構(gòu)文件派生新類(lèi)使用類(lèi)型化數(shù)據(jù)集訪問(wèn)列string employeeName;employeeName = dsEmployees.Emp0.EmpName;從 dsEmployees 數(shù)據(jù)集的 Emp 表中第一個(gè)記錄返回 EmpName 列,然后將其存儲(chǔ)在 employeeName 字符串變量中使用非類(lèi)型化數(shù)據(jù)集訪問(wèn)列 string employeeName;employeeName = dsEmployees.TablesEmp.Rows0EmpName;使用 Tables 集合返回 EmpName 列第7頁(yè)/共28頁(yè)屬性說(shuō)明

4、DataSetName 用于獲取或設(shè)置當(dāng)前數(shù)據(jù)集的名稱Tables 用于檢索數(shù)據(jù)集中包含的表集合方法說(shuō)明Clear清除數(shù)據(jù)集中包含的所有表的所有行HasChanges 返回一個(gè)布爾值,指示數(shù)據(jù)集是否更改了DataSet empDS = new DataSet(EmployeeDetails);第8頁(yè)/共28頁(yè)屬性說(shuō)明Columns 表示列的集合或 DataTable 包含的 DataColumnConstraints 表示特定 DataTable 的約束集合DataSet 表示 DataTable 所屬的數(shù)據(jù)集PrimaryKey 表示作為 DataTable 主鍵的字段或 DataColum

5、nRows表示行的集合或 DataTable 包含的 DataRowHasChanges 返回一個(gè)布爾值,指示數(shù)據(jù)集是否更改了方法說(shuō)明AcceptChanges提交對(duì)該表所做的所有修改NewRow 添加新的 DataRow事件說(shuō)明ColumnChanged 修改該列中的值時(shí)激發(fā)該事件RowChanged 成功編輯行后激發(fā)該事件RowDeleted 成功刪除行時(shí)激發(fā)該事件DataTable objStudentTable = new DataTable(Students);創(chuàng)建 DataTable 對(duì)象的實(shí)例DataSet studentDS = new DataSet();DataTable

6、objStudentTable = studentDS.Tables.Add(Students);創(chuàng)建 DataTable 的實(shí)例,然后將其添加到數(shù)據(jù)集的 Tables 集合中第9頁(yè)/共28頁(yè)屬性屬性說(shuō)明說(shuō)明AllowDBNull 表示一個(gè)值,指示對(duì)于該表中的行,此列是否允許表示一個(gè)值,指示對(duì)于該表中的行,此列是否允許 null 值值ColumnName表示指定表示指定 DataColumn 的名稱的名稱DataType 表示指定表示指定 DataColumn 對(duì)象中存儲(chǔ)的數(shù)據(jù)類(lèi)型對(duì)象中存儲(chǔ)的數(shù)據(jù)類(lèi)型DefaultValue 表示新建行時(shí)該列的默認(rèn)值表示新建行時(shí)該列的默認(rèn)值Table表示表示

7、DataColumn 所屬的所屬的 DataTable 的名稱的名稱Unique 表示表示 DataColumn 的值是否必須是唯一的的值是否必須是唯一的DataTable objStudentTable = new DataTable(Students);DataColumn objStudentNumber = objStudentTable.Columns.Add ( StudentNo ,typeof(Int32);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTa

8、ble.Columns.Add(StudentName,typeof(Int32);objStudentTable.Columns.Add(StudentMarks,typeof(Double);使用多個(gè) DataColumn 對(duì)象創(chuàng)建 DataTable第10頁(yè)/共28頁(yè)屬性屬性說(shuō)明說(shuō)明Item表示表示 DataRow 的指定列中存儲(chǔ)的值的指定列中存儲(chǔ)的值RowState 表示行的當(dāng)前狀態(tài)表示行的當(dāng)前狀態(tài)Table表示用于創(chuàng)建表示用于創(chuàng)建 DataRow 的的 DataTable 的名稱的名稱方法方法說(shuō)明說(shuō)明AcceptChanges 用于提交自上次調(diào)用了用于提交自上次調(diào)用了 AcceptC

9、hanges 之后對(duì)該行所做的所有修改之后對(duì)該行所做的所有修改Delete Deletes the DataRow 用于刪除用于刪除 DataRowRejectChanges 用于拒絕自上次調(diào)用了用于拒絕自上次調(diào)用了 AcceptChanges 之后對(duì)之后對(duì) DataRow 所做的所有修改所做的所有修改/定義表結(jié)構(gòu),為Students表添加學(xué)號(hào)、姓名、分?jǐn)?shù)三列DataTable objStudentTable = new DataTable(Students);DataColumn objStudentNumber = new DataColumn(); objStudentNumber.Da

10、taType = objStudentTable.Columns.Add ( StudentNo ,typeof(string);objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTable.Columns.Add(StudentName,typeof(string);objStudentTable.Columns.Add(StudentMarks,typeof(Double);/向表中填充數(shù)據(jù)DataRow objStudentRow;objStudentRow= objSt

11、udentTable.NewRow();objStudentRowStudentNo=101;objStudentRow“StudentName”=“張三;objStudentRowStudentMarks=55;objStudentTable.Rows.Add(objStudentRow);在 DataTable 對(duì)象中新建 DataRow第11頁(yè)/共28頁(yè)objStudentTable.PrimaryKey = new DataColumnobjStudentTable.ColumnsStudentNo; 設(shè)置單個(gè)列為 DataTable 的主鍵objStudentTable.Primar

12、yKey = new DataColumn objStudentTable.ColumnsStudentNo, objStudentTable.ColumnsStudentName ; 為 DataTable 對(duì)象設(shè)置復(fù)合主鍵第12頁(yè)/共28頁(yè)Constraint是對(duì)表中數(shù)據(jù)施加的限制或規(guī)則集決定表中可以存儲(chǔ)的數(shù)據(jù)用于維護(hù)數(shù)據(jù)的正確性和有效性約束的類(lèi)約束的類(lèi)型型ForeignKeyConstraint UniqueConstraint 第13頁(yè)/共28頁(yè)DataView用作 DataTable 中存儲(chǔ)的數(shù)據(jù)的表示層提供對(duì) DataTable 進(jìn)行排序、篩選和搜索的自定義視圖允許 WinForm

13、s 控件進(jìn)行數(shù)據(jù)綁定可用于查看 DataTable 中存儲(chǔ)的數(shù)據(jù)的子集數(shù)據(jù)綁定是為了在控件上顯示數(shù)據(jù)庫(kù)表中存儲(chǔ)的數(shù)據(jù),而將應(yīng)用程序的控件與數(shù)據(jù)表的行進(jìn)行綁定的過(guò)程屬性說(shuō)明Item用于從指定的表中獲取一行數(shù)據(jù)RowFilter 用于獲取或設(shè)置表達(dá)式,該表達(dá)式用于篩選可以在 DataView 中查看的行RowStateFilter 用于獲取 DataView 的行狀態(tài)篩選器Table用于表示源 DataTable方法說(shuō)明AddNew 向 DataView 添加新行Delete用于刪除指定索引處的行DataView objStudentView = new DataView(objStudentTa

14、ble);objStudentView.RowFilter = StudentMarks 60;for(int ctr =0; ctr objStudentView.Count; ctr+)MessageBox.Show(objStudentViewctrStudentNo.ToString();創(chuàng)建 DataView 并對(duì)該視圖應(yīng)用某種篩選器第14頁(yè)/共28頁(yè)第15頁(yè)/共28頁(yè)數(shù)據(jù)命令DataAdapterDataSetDataTable DataRow 集合DataColumn 集合Constraint 集合填充脫機(jī)數(shù)據(jù)庫(kù)非永久連接第16頁(yè)/共28頁(yè)SQL 數(shù)據(jù)提供程序SqlDataAda

15、pter OLE DB 數(shù)據(jù)提供程序OleDbDataAdapter Oracle 數(shù)據(jù)提供程序OracleDataAdapter ODBC 數(shù)據(jù)提供程序OdbcDataAdapter .NET 提供程序及其 DataAdapter 類(lèi)DataAdapter 類(lèi)的屬性和方法屬性說(shuō)明AcceptChangesDuringFill 決定在把行復(fù)制到 DataTable 中時(shí)對(duì)行所做的修改是否可以接受TableMappings 容納一個(gè)集合,該集合提供返回行和數(shù)據(jù)集之間的主映射方法說(shuō)明Fill用于添加或刷新數(shù)據(jù)集,以便使數(shù)據(jù)集與數(shù)據(jù)源匹配FillSchema 用于在數(shù)據(jù)集中添加 DataTable,

16、以便與數(shù)據(jù)源的結(jié)構(gòu)匹配Update 將DataSet里面的數(shù)值存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器上第17頁(yè)/共28頁(yè)DataAdapter 類(lèi)的屬性和方法屬性說(shuō)明InsertCommand 表示用于在數(shù)據(jù)庫(kù)中插入新記錄的 SQL 語(yǔ)句或存儲(chǔ)過(guò)程UpdateCommand 表示用于在數(shù)據(jù)庫(kù)中更新記錄的 SQL 語(yǔ)句或存儲(chǔ)過(guò)程DeleteCommand 表示用于從數(shù)據(jù)庫(kù)中刪除記錄的 SQL 語(yǔ)句或存儲(chǔ)過(guò)程SelectCommand 表示用于從數(shù)據(jù)庫(kù)中選擇記錄的 SQL 語(yǔ)句或存儲(chǔ)過(guò)程事件說(shuō)明RowUpdated 在對(duì)數(shù)據(jù)源執(zhí)行更新命令之后的過(guò)程中激發(fā)該事件RowUpdating 在對(duì)數(shù)據(jù)源執(zhí)行命令更新之前的過(guò)程中

17、激發(fā)該事件OleDbConnection objOleConnection = new OleDbConnection();objOleConnection.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source = + D:Students.mdb;objOleConnection.Open();string query =SELECT * from Student;DataSet objDataSet = new DataSet();OleDbDataAdapter objOleAdapter = new OleDbD

18、ataAdapter();objOleAdapter.SelectCommand = new OleDbCommand(query,objOleConnection);objOleAdapter.Fill(objDataSet,Students);傳遞給 OleDbAdapter 對(duì)象將數(shù)據(jù)填充到數(shù)據(jù)集中第18頁(yè)/共28頁(yè)SqlConnection objSqlConnection = new SqlConnection (SERVER=MYSERVER;database=Students;uid=sa; password=playware);SqlDataAdapter objSqlAdap

19、ter = new SqlDataAdapter(SELECT * from Student,objSqlConnection);objSqlConnection.Open();DataSet objDataSet = new DataSet();objSqlAdapter.Fill(objDataSet,Students);創(chuàng)建與 SQL Server 數(shù)據(jù)庫(kù)的連接,并用相應(yīng)的值填充數(shù)據(jù)集第19頁(yè)/共28頁(yè)第20頁(yè)/共28頁(yè)DataReader只讀只進(jìn)記錄集查詢只讀和只進(jìn)訪問(wèn) 需要永久連接.NET 數(shù)據(jù)提供程序及其 DataReader 類(lèi).NET Framework 數(shù)據(jù)提數(shù)據(jù)提供程序供程

20、序DataReader 類(lèi)類(lèi)SQL 數(shù)據(jù)提供程序SqlDataReader OLE DB 數(shù)據(jù)提供程序OleDbDataReader Oracle 數(shù)據(jù)提供程序OracleDataReader ODBC 數(shù)據(jù)提供程序OdbcDataReader 第21頁(yè)/共28頁(yè)屬性說(shuō)明FieldCount 返回當(dāng)前行中的列數(shù)HasRows 容納一個(gè)指示讀取器是否含有一行或多行的值IsClosed 表示 DataReader 是否關(guān)閉RecordsAffected 表示執(zhí)行 SQL 語(yǔ)句之后修改、插入或刪除的行數(shù)方法說(shuō)明Close 用于關(guān)閉 DataReader 對(duì)象GetBoolean 用于獲取特定列的布爾

21、值GetInt32 用于返回列的整型值DataReader 對(duì)象的屬性和方法方法說(shuō)明GetString 用于獲取特定列的 String 值GetValue 用于返回本機(jī)格式的特定列的值Read使 DataReader 前移到下一個(gè)記錄SqlConnection objSqlConnection = new SqlConnection(SERVER=MYSERVER;database=Students; uid=sa;password=playware);string query = SELECT * from Student;SqlCommand objSqlCommand = new Sql

22、Command(query,objSqlConnection);objSqlConnection.Open();SqlDataReader objSqlReader = objSqlCommand.ExecuteReader();while(objSqlReader.Read() MessageBox.Show(“學(xué)號(hào): +objSqlReader.GetValue(0);執(zhí)行給定查詢、從數(shù)據(jù)流中檢索行,并將結(jié)果集綁定到 DataReader 類(lèi)的給定實(shí)例中 第22頁(yè)/共28頁(yè)演示: 創(chuàng)建 Windows 應(yīng)用程序示例的步驟“乘客詳細(xì)信息”窗體 u 創(chuàng)建一個(gè)名為“Example 1”的 Win

23、dows 應(yīng)用程序u 將 Form1.cs 更改為 frmPassenger.csu 設(shè)計(jì)窗體,如圖 2.3 所示u 命名控件u 將以下命名空間包含在項(xiàng)目中u 在類(lèi)聲明部分聲明以下變量using System.Data;using System.Data.SqlClient;private SqlConnection objSqlConnection;private SqlDataAdapter objDataAdapter; 第23頁(yè)/共28頁(yè)private void frmPassenger_Load(object sender, System.EventArgs e)this.cboSe

24、x.Items.Add(“男);this.cboSex.Items.Add(“女);objSqlConnection = new SqlConnection(server=MYSERVER;database=Flights; uid=sa; pwd = playware;);向組合框中添加值創(chuàng)建 Sql 連接private void btnAdd_Click(object sender, System.EventArgs e) try objSqlConnection.Open();DataSet objDataSet = new DataSet();objDataAdapter = new

25、SqlDataAdapter(Select * from Passenger,objSqlConnection);objDataAdapter.Fill(objDataSet,Passenger); objDataAdapter.InsertCommand = objSqlConnection.CreateCommand();打開(kāi) Sql 連接新建數(shù)據(jù)集填充數(shù)據(jù)集objDataAdapter.InsertCommand.CommandText =INSERT INTO Passenger(FlightCode,PassportNo”+”,Name,SeatNo, Sex,Age) +VALUE

26、S(+this.txtFlightCode.Text+,“ +this.txtPassport.Text+, +this.txtName.Text+,“ +this.txtSeatNo.Text+,“ +this.cboSex.SelectedItem.ToString()+,“ +this.txtAge.Text+); DataTable objDataTable = new DataTable(); objDataSet.Tables.Add(objDataTable); DataRow objDataRow = objDataSet.Tables0.NewRow();創(chuàng)建顯式、可重用的

27、INSERT 命令objDataRowFlightCode=this.txtFlightCode.Text;objDataRowPassportNo=this.txtPassport.Text;objDataRowName=this.txtName.Text; objDataRowSeatNo=Convert.ToInt32(this.txtSeatNo.Text);objDataRowSex=this.cboSex.SelectedText;objDataRowAge=Convert.ToInt32(this.txtAge.Text);objDataSet.Tables0.Rows.Add(

28、objDataRow);/ objDataAdapter.Update(objDataSet,Passenger); Application.DoEvents(); MessageBox.Show(“已插入行);this.ClearFields(); catch(SqlException ex) . . .第24頁(yè)/共28頁(yè)private void btnDelete_Click(object sender, System.EventArgs e) try objSqlConnection.Open(); DataSet objDataSet = new DataSet(); objDataA

29、dapter = new SqlDataAdapter(Select * from Passenger,objSqlConnection); objDataAdapter.Fill(objDataSet,Passenger); objDataAdapter.DeleteCommand = objSqlConnection.CreateCommand(); objDataAdapter.DeleteCommand.CommandText = DELETE from Passenger where FlightCode=+ this.txtFlightCode.Text+; DataTable objDataTable = new DataTable(); objDataSet.Tables.Add(objDataTable);打開(kāi)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論