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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、objStudentTable = studentDS.Tables.Add(Students);創(chuàng)建 DataTable 的實例,然后將其添加到數(shù)據(jù)集的 Tables 集合中第9頁/共28頁屬性屬性說明說明AllowDBNull 表示一個值,指示對于該表中的行,此列是否允許表示一個值,指示對于該表中的行,此列是否允許 null 值值ColumnName表示指定表示指定 DataColumn 的名稱的名稱DataType 表示指定表示指定 DataColumn 對象中存儲的數(shù)據(jù)類型對象中存儲的數(shù)據(jù)類型DefaultValue 表示新建行時該列的默認值表示新建行時該列的默認值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);使用多個 DataColumn 對象創(chuàng)建 DataTable第10頁/共28頁屬性屬性說明說明Item表示表示 DataRow 的指定列中存儲的值的指定列中存儲的值RowState 表示行的當(dāng)前狀態(tài)表示行的當(dāng)前狀態(tài)Table表示用于創(chuàng)建表示用于創(chuàng)建 DataRow 的的 DataTable 的名稱的名稱方法方法說明說明AcceptChanges 用于提交自上次調(diào)用了用于提交自上次調(diào)用了 AcceptC

9、hanges 之后對該行所做的所有修改之后對該行所做的所有修改Delete Deletes the DataRow 用于刪除用于刪除 DataRowRejectChanges 用于拒絕自上次調(diào)用了用于拒絕自上次調(diào)用了 AcceptChanges 之后對之后對 DataRow 所做的所有修改所做的所有修改/定義表結(jié)構(gòu),為Students表添加學(xué)號、姓名、分數(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 對象中新建 DataRow第11頁/共28頁objStudentTable.PrimaryKey = new DataColumnobjStudentTable.ColumnsStudentNo; 設(shè)置單個列為 DataTable 的主鍵objStudentTable.Primar

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

13、s 控件進行數(shù)據(jù)綁定可用于查看 DataTable 中存儲的數(shù)據(jù)的子集數(shù)據(jù)綁定是為了在控件上顯示數(shù)據(jù)庫表中存儲的數(shù)據(jù),而將應(yīng)用程序的控件與數(shù)據(jù)表的行進行綁定的過程屬性說明Item用于從指定的表中獲取一行數(shù)據(jù)RowFilter 用于獲取或設(shè)置表達式,該表達式用于篩選可以在 DataView 中查看的行RowStateFilter 用于獲取 DataView 的行狀態(tài)篩選器Table用于表示源 DataTable方法說明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 并對該視圖應(yīng)用某種篩選器第14頁/共28頁第15頁/共28頁數(shù)據(jù)命令DataAdapterDataSetDataTable DataRow 集合DataColumn 集合Constraint 集合填充脫機數(shù)據(jù)庫非永久連接第16頁/共28頁SQL 數(shù)據(jù)提供程序SqlDataAda

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

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

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 對象將數(shù)據(jù)填充到數(shù)據(jù)集中第18頁/共28頁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ù)庫的連接,并用相應(yīng)的值填充數(shù)據(jù)集第19頁/共28頁第20頁/共28頁DataReader只讀只進記錄集查詢只讀和只進訪問 需要永久連接.NET 數(shù)據(jù)提供程序及其 DataReader 類.NET Framework 數(shù)據(jù)提數(shù)據(jù)提供程序供程

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

21、值GetInt32 用于返回列的整型值DataReader 對象的屬性和方法方法說明GetString 用于獲取特定列的 String 值GetValue 用于返回本機格式的特定列的值Read使 DataReader 前移到下一個記錄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é)號: +objSqlReader.GetValue(0);執(zhí)行給定查詢、從數(shù)據(jù)流中檢索行,并將結(jié)果集綁定到 DataReader 類的給定實例中 第22頁/共28頁演示: 創(chuàng)建 Windows 應(yīng)用程序示例的步驟“乘客詳細信息”窗體 u 創(chuàng)建一個名為“Example 1”的 Win

23、dows 應(yīng)用程序u 將 Form1.cs 更改為 frmPassenger.csu 設(shè)計窗體,如圖 2.3 所示u 命名控件u 將以下命名空間包含在項目中u 在類聲明部分聲明以下變量using System.Data;using System.Data.SqlClient;private SqlConnection objSqlConnection;private SqlDataAdapter objDataAdapter; 第23頁/共28頁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();打開 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頁/共28頁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);打開

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論