C#語言課件 第8章 數據庫應用_第1頁
C#語言課件 第8章 數據庫應用_第2頁
C#語言課件 第8章 數據庫應用_第3頁
C#語言課件 第8章 數據庫應用_第4頁
C#語言課件 第8章 數據庫應用_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章數據庫應用01ADO.NET概述02Connection數據連接對象03Command命令執(zhí)行對象04DataReader數據讀取對象05DataSet和DataAdapter對象06數據操作控件

ADO.NET概述ADO.NET是微軟.NET數據庫的訪問架構,它是數據庫應用程序和數據源之間溝通的橋梁,主要提供一個面向對象的數據訪問架構,用來開發(fā)數據庫應用程序。ADO.NET對象模型System.Data:提供對表示ADO.NET結構的類的訪問。System.Data.Common:包含由各種.NETFramework數據提供程序共享的類。System.Data.Odbc:ODBC.NETFramework數據提供程序,描述用來訪問托管空間中的ODBC數據源的類集合。System.Data.OleDb:OLEDB.NETFramework數據提供程序,描述了用于訪問托管空間中的OLEDB數據源的類集合。System.Data.SqlClient:SQL服務器.NETFramework數據提供程序,描述了用于在托管空間中訪問SQLServer數據庫的類集合。System.Data.SqlTypes:提供SQLServer中本機數據類型的類。System.Data.OracleClient:用于Oracle的.NETFramework數據提供程序,描述了用于在托管空間中訪問Oracle數據源的類集合。數據訪問命名空間

Connection數據連接對象Connection數據連接對象語法Connection對象用于連接到數據庫和管理對數據庫的事務,它的一些屬性描述數據源和用戶身份驗證。連接SQLServer數據庫stringconnectionString="Server=服務器名;UserId=用戶;Pwd=密碼;DataBase=數據庫名稱"連接Access數據庫stringconnectionString=“provide=提供者;DataSource=Access文件路徑”;參數說明Provider這個屬性用于設置或返回連接提供程序的名稱,僅用于OleDbConnection對象ConnectionTimeout在終止嘗試并產生異常前,等待連接到服務器的連接時間長度(以秒為單位)。默認值是15秒InitialCatalog或Database數據庫的名稱DataSource或Server連接打開時使用的SQLServer名稱,或者是MicrosoftAccess數據庫的文件名Password或pwdSQLServer賬戶的登錄密碼UserID或uidSQLServer登錄賬戶IntegratedSecurity此參數決定連接是否是安全連接??赡艿闹涤蠺rue,F(xiàn)alse和SSPI(SSPI是True的同義詞)應用SqlConnection對象連接數據庫

調用Connection對象的Open方法或Close方法可以打開或關閉數據庫連接,而且必須在設置好數據庫連接字符串后才能調用Open方法,否則Connection對象不知道要與哪一個數據庫建立連接。stringSqlStr="Server=MRKJ_ZHD\\EAST;UserId=sa;Pwd=;DataBase=db_EMS";SqlConnectioncon=newSqlConnection(SqlStr);con.Open();if(con.State==ConnectionState.Open){label1.Text="SQLServer數據庫連接開啟!";con.Close();}if(con.State==ConnectionState.Closed){label2.Text="SQLServer數據庫連接關閉!";}Command命令執(zhí)行對象主要內容

熟悉Command對象

應用Command對象操作數據

應用Command對象調用存儲過程010203熟悉Command對象語法

使用Connection對象與數據源建立連接后,可以使用Command對象對數據源執(zhí)行查詢、添加、刪除和修改等各種操作,操作實現(xiàn)的方式可以是使用SQL語句,也可以是使用存儲過程。根據.NETFramework數據提供程序的不同,Command對象可以分成4種,分別是SqlCommand、OleDbCommand、OdbcCommand和OracleCommand,在實際的編程過程中應該根據訪問的數據源不同,選擇相對應的Command對象。屬性說明CommandType獲取或設置Command對象要執(zhí)行命令的類型CommandText獲取或設置要對數據源執(zhí)行的SQL語句或存儲過程名或表名CommandTimeOut獲取或設置在終止對執(zhí)行命令的嘗試并生成錯誤之前的等待時間Connection獲取或設置Command對象使用的Connection對象的名稱Parameters獲取Command對象需要使用的參數集合熟悉Command對象方法說明

ExecuteNonQuery用于執(zhí)行非SELECT命令,比如INSERT、DELETE或者UPDATE命令,并返回3個命令所影響的數據行數;另外也可以用來執(zhí)行一些數據定義命令,比如新建、更新、刪除數據庫對象(如表、索引等)

ExecuteScalar用于執(zhí)行SELECT查詢命令,返回數據中第一行第一列的值,該方法通常用來執(zhí)行那些用到COUNT或SUM函數的SELECT命令

ExecuteReader執(zhí)行SELECT命令,并返回一個DataReader對象,這個DataReader對象是一個只讀向前的數據集

應用Command對象操作數據

以操作SQLServer數據庫為例,向數據庫中添加記錄時,首先要創(chuàng)建SqlConnection對象連接數據庫,然后定義添加數據的SQL字符串,最后調用SqlCommand對象的ExecuteNonQuery方法執(zhí)行數據的添加操作。SqlConnectionconn=newSqlConnection("Server=MRKJ_ZHD\\EAST;UserId=sa;Pwd=;DataBase=db_EMS");stringstrsql="insertintotb_PDic(Name,Money)values('"+textBox1.Text+"',"+Convert.ToDecimal(textBox2.Text)+")";SqlCommandcomm=newSqlCommand(strsql,conn);

conn.Open(); comm.ExecuteNonQuery();conn.Close(); 應用Command對象調用存儲過程SqlConnectionsqlcon=newSqlConnection("Server=MRKJ_ZHD\\EAST;UserId=sa;Pwd=;DataBase=db_EMS");SqlCommandsqlcmd=newSqlCommand();sqlcmd.Connection=sqlcon;sqlcmd.CommandType=CommandType.StoredProcedure;sqlcmd.CommandText="proc_AddData";sqlcmd.Parameters.Add("@name",SqlDbType.VarChar,20).Value=textBox1.Text;sqlcmd.Parameters.Add("@money",SqlDbType.Decimal).Value=Convert.ToDecimal(textBox2.Text);conn.Open(); sqlcmd.ExecuteNonQuery();conn.Close();

DataReader數據讀取對象DataReader對象概述語法DataReader對象是一個簡單的數據集,它主要用于從數據源中讀取只讀的數據集,其常用于檢索大量數據。使用DataReader對象讀取數據時,必須一直保持與數據庫的連接,所以也被稱為連線模式。DataReader對象的屬性和方法屬性說明HasRows判斷數據庫中是否有數據FieldCount獲取當前行的列數RecordsAffected獲取執(zhí)行SQL語句所更改、添加或刪除的行數方法說明Read使DataReader對象前進到下一條記錄Close關閉DataReader對象Get用來讀取數據集的當前行的某一列的數據使用DataReader對象檢索數據

使用DataReader對象讀取數據時,首先需要使用其HasRows屬性判斷是否有數據可供讀取,如果有數據,返回True,否則返回False;然后再使用DataReader對象的的Read方法來循環(huán)讀取數據表中的數據;最后通過訪問DataReader對象的列索引來獲取讀取到的值,例如,sqldr["ID"]用來獲取數據表中ID列的值。SqlConnectionsqlcon=newSqlConnection("Server=MRKJ_ZHD\\EAST;UserId=sa;Pwd=;DataBase=db_EMS"); SqlCommandsqlcmd=newSqlCommand("select*fromtb_PDicorderbyIDasc",sqlcon);sqlcon.Open();SqlDataReadersqldr=sqlcmd.ExecuteReader();if(sqldr.HasRows){while(sqldr.Read()){richTextBox1.Text+=sqldr["ID"]+sqldr["Name"]+"\n";}}sqldr.Close();sqlcon.Close();

DataSet對象和DataAdapter操作對象主要內容

DataSet對象

DataAdapter對象

填充DataSet數據集010203

DataSet對象與DataReader對象的區(qū)別04DataSet對象語法DataSet對象是ADO.NET的核心成員,它是支持ADO.NET斷開式、分布式數據方案的核心對象,也是實現(xiàn)基于非連接的數據查詢的核心組件。DataSet對象是創(chuàng)建在內存中的集合對象,它可以包含任意數量的數據表以及所有表的約束、索引和關系等,它實質上相當于在內存中的一個小型關系數據庫。一個DataSet對象包含一組DataTable對象和DataRelation對象,其中每個DataTable對象都由DataColumn、DataRow和Constraint集合對象組成。DataAdapter對象DataAdapter對象(即數據適配器)是一種用來充當DataSet對象與實際數據源之間橋梁的對象,可以說只要有DataSet對象的地方就有DataAdapter對象,它也是專門為DataSet對象服務的。DataAdapter對象的工作步驟一般有兩種:一種是通過Command對象執(zhí)行SQL語句,從而從數據源中檢索數據,并將檢索到的結果集填充到DataSet對象中;另一種是把用戶對DataSet對象作出的更改寫入到數據源中。屬性說明SelectCommand獲取或設置用于在數據源中選擇記錄的命令InsertCommand獲取或設置用于將新記錄插入到數據源中的命令UpdateCommand獲取或設置用于更新數據源中記錄的命令DeleteCommand獲取或設置用于從數據集中刪除記錄的命令方法說明Fill從數據源中提取數據以填充數據集Update更新數據源填充DataSet數據集

使用DataAdapter對象填充DataSet數據集時,需要用到其Fill方法,該方法最常用的3種重載形式如下:intFill(DataSetdataset):添加或更新參數所指定的DataSet數據集,返回值是影響的行數。intFill(DataTabledatatable):將數據填充到一個數據表中。intFill(DataSetdataset,StringtableName):填充指定的DataSet數據集中的指定表。stringstrCon="Server=MRKJ_ZHD\\EAST;UserId=sa;Pwd=;DataBase=db_EMS";SqlConnectionsqlcon=newSqlConnection(strCon);SqlDataAdaptersqlda=newSqlDataAdapter("select*fromtb_PDic",sqlcon);DataSetmyds=newDataSet();sqlda.Fill(myds,"tabName"); DataSet對象與DataReader對象的區(qū)別

ADO.NET中提供了兩個對象用于檢索關系數據:DataSet對象與DataReader對象,其中,DataSet對象是將用戶需要的數據從數據庫中“復制”下來存儲在內存中,用戶是對內存中的數據直接操作;而DataReader對象則像一根管道,連接到數據庫上,“抽”出用戶需要的數據后,管道斷開,所以用戶在使用DataReader對象讀取數據時,一定要保證數據庫的連接狀態(tài)是開啟的,而使用DataSet對象時就沒有這個必要。

數據操作控件主要內容

DataGridView控件

BindingSource組件0102DataGridView控件語法DataGridView控件,又稱為數據表格控件,它提供一種強大而靈活的以表格形式顯示數據的方式

下面通過一個例子看一下如何使用DataGridView控件,該實例主要實現(xiàn)的功能有:禁止在DataGridView控件中添加/刪除行、禁用DataGri

溫馨提示

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

評論

0/150

提交評論