ADONET連接數(shù)據(jù)庫.ppt_第1頁
ADONET連接數(shù)據(jù)庫.ppt_第2頁
ADONET連接數(shù)據(jù)庫.ppt_第3頁
ADONET連接數(shù)據(jù)庫.ppt_第4頁
ADONET連接數(shù)據(jù)庫.ppt_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

VIP免費下載

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

文檔簡介

ADO.NET連接數(shù)據(jù)庫,西源軟件培訓(xùn)中心,目標(biāo),了解ADO.NET 結(jié)構(gòu) 了解ADO.NET 的組件 理解Command 對象和 Connection 對象 理解ADO.NET 進行事務(wù)處理,ADO.NET 簡介,以流的形式從文件中讀寫數(shù)據(jù),少量數(shù)據(jù),不適用于,大量數(shù)據(jù),ADO.NET 簡介,以流的形式從文件中讀寫數(shù)據(jù),少量數(shù)據(jù),不適用于,大量數(shù)據(jù),中央數(shù)據(jù)庫,要管理數(shù)據(jù)庫,需要專門的軟件應(yīng)用程序,RDBMS,ADO.NET 簡介,中央數(shù)據(jù)庫,用戶需要時,可以隨時訪問數(shù)據(jù),用戶計算機向數(shù)據(jù)庫服務(wù)器發(fā)送請求,客戶端,不同的訪問方法和技術(shù),ADO .NET,ADO.NET 簡介,.NET Framework,ADO .NET,System.Data 命名空間,以 ActiveX 數(shù)據(jù)對象 (ADO) 為基礎(chǔ) 以 XML(擴展標(biāo)記語言)為格式傳送和接收數(shù)據(jù),ADO.NET 的優(yōu)點,互操作性 性能 可伸縮性 標(biāo)準(zhǔn)化 可編程能力,ADO.NET的結(jié)構(gòu),ADO.NET 對數(shù)據(jù)庫的訪問,將數(shù)據(jù)傳遞到用戶界面時, ADO.NET 采用 XML 格式,數(shù)據(jù)已緩存,斷開式數(shù)據(jù)結(jié)構(gòu),ADO.NET 對數(shù)據(jù)庫的訪問,對于Insert,Update,Delete 等單向操作,應(yīng)用程序,數(shù)據(jù)庫,1、用Connection.Open打開數(shù)據(jù)庫,2、用DataAdaptor.Command或者 Command.Execute 執(zhí)行命令,3、關(guān)閉數(shù)據(jù)庫,Insert用InsertCommand Delete 用DeleteCommand Update用UpdateCommand,ADO.NET 對數(shù)據(jù)庫的訪問,應(yīng)用程序,數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫,1、用Connection .Open建立連接,2、用DataAdaptor.SelectCommand 執(zhí)行命令,DataAdaptor.Fill,對于Select的雙向操作,DataSet,知識點小結(jié),引入ADO.NET的原因 ADO.NET的優(yōu)缺點 ADO.NET的組成結(jié)構(gòu) ADO.NET對數(shù)據(jù)庫的調(diào)用過程,.NET 數(shù)據(jù)提供程序,ADO.NET,DataSet,.NET Framework 數(shù)據(jù)提供程序,1、SQLClient 2、OLEDB 3、Oracle 4、ODBC,由以下各項組成的集合:,.NET 數(shù)據(jù)提供程序,客戶端,服務(wù)器,數(shù)據(jù)集,2、將數(shù)據(jù)發(fā)送到數(shù)據(jù)集,A、客戶端修改數(shù)據(jù)集,3、數(shù)據(jù)集傳遞給客戶端,B、將修改后的數(shù)據(jù)集傳遞給服務(wù)器,1、客戶端從服務(wù)器請求數(shù)據(jù),1,2,3是從服務(wù)器檢索數(shù)據(jù)的過程 A、B是對數(shù)據(jù)庫修改的過程,.NET 數(shù)據(jù)提供程序,用于 SQL Server 的 .NET Framework 數(shù)據(jù)提供程序,System.Data.SqlClient 命名空間,僅限于連接 SQL Server 數(shù)據(jù)庫 7.0 或更高版本,.NET 數(shù)據(jù)提供程序,用于 OLEDB 的 .NET Framework 數(shù)據(jù)提供程序,.NET 數(shù)據(jù)提供程序,用于 ODBC 的 .NET Framework 數(shù)據(jù)提供程序的命名空間 用于 Oracle 的 .NET Framework 數(shù)據(jù)提供程序的命名空間,System.Data.Odbc 命名空間,System.Data.OracleClient 命名空間,知識點小結(jié),使用的名稱空間 SQL Server using System.Data.SqlClient OLE DB using System.Data.OleDb Oracle using System.Data.OracleClient ODBC using System.Data.Odbc,Connection 對象,在 ADO.NET 中,必須顯式關(guān)閉連接,才能釋放實際的數(shù)據(jù)庫連接,Connection 對象,方法,Close(),Open(),屬性,ConnectionString,Database,Connection 對象4-3,單擊“數(shù)據(jù)”選項卡,SqlConnection,拖放,sqlConnection1 已添加,從列表中選擇 SQL Server,指定用戶名和密碼,最后選擇數(shù)據(jù)庫,如果連接成功,則會顯示一則消息,Connection 對象,使用代碼編輯器,SqlConnection objSqlConnection = new SqlConnection (“server = SQLDB; uid = sa; pwd = password; database = pubs“); objSqlConnection.Open();,objSqlConnection 創(chuàng)建的連接對象名稱,SQLDB 存儲“pubs”數(shù)據(jù)庫的服務(wù)器名稱,也可以寫成IP地址,如 本地服務(wù)器可以有以下幾種寫法: 1、(local) 2、 3、本地機子名稱,uid, pwd 用戶標(biāo)識和密碼,知識點小結(jié),Connection對象的作用 Connection對象的兩種使用方法 拖拉控件 寫代碼 四種典型的連接方式的應(yīng)用名稱空間和連接字符串的寫法 SqlConnection OleDbConnection OracleConnection OdbcConnection,Command 對象,數(shù)據(jù)庫,Command 對象指定要對數(shù)據(jù)庫執(zhí)行的操作,檢索和操縱數(shù)據(jù),Command,Command 對象,與數(shù)據(jù)庫建立連接之后,可以使用 Command 對象執(zhí)行命令并從數(shù)據(jù)源返回結(jié)果,Command 對象,方法,ExecuteNonQuery() 返回受影響的行數(shù),ExecuteScalar() 返回第一行第一列,ExecuteReader() 返回DataReader類型值,屬性,CommandText 欲執(zhí)行的內(nèi)容,可以是SQL語句或者存儲過程名稱,Connection,CommandType 命令類型,Command 對象,用SQL 語句的Command設(shè)置 SqlCommand objComm=new SqlCommand(); objComm.CommandText=“SQL 語句“; objComm.CommandType=CommandType.Text ; objComm. Connection=objConnection; 用存儲過程的Command設(shè)置 SqlCommand objComm=new SqlCommand(); objComm.CommandText=“sp_DeleteName“; objComm.CommandType=CommandType. StoredProcedure ; objComm. Connection=objConnection; Sp_DeleteName是在SQL Server服務(wù)器上創(chuàng)建的存儲過程,Command 對象 6-4,單擊“數(shù)據(jù)”選項卡,SqlCommand,拖放,已添加 sqlCommand1,將 sqlConnection1 設(shè)置為 sqlCommand1 的連接,在 CommandText 屬性中鍵入“Insert into FlightDetails values()”,Command 對象,已添加“FlightDetails”表,單擊該表中所有字段旁邊的框,以指定要在其中插入新值的列,為每一列指定新值,Command 對象,使用代碼編輯器,SqlCommand objSqlCommand = new SqlCommand(strSQL);,objSqlConnection 創(chuàng)建的 Command 對象名稱,strSQL 任何有效的 SQL 語句,知識點小結(jié),Command的作用 Command的使用前提 Connection打開 Command的使用方法 命令文本方式 存儲過程方式 Command返回值類型 返回受影響的行數(shù) 返回第一行第一列 返回DataReader,.NET 中的事務(wù)處理,肥皂,關(guān)系表,數(shù)據(jù)庫,5,12439,12439,2004 年 10 月 30 日,已成功地完成對一個表的操作,但是關(guān)系表尚未更新,因此,數(shù)據(jù)會出現(xiàn)不一致的現(xiàn)象,不完整的,事務(wù)處理!,成功地進行整個操作或者取消整個操作,確保,事務(wù)處理是一組數(shù)據(jù)操作,這些操作要么必須全部成功,要么必須全部失敗,以保證數(shù)據(jù)的一致性和完整性,.NET 中的事務(wù)處理,Begin: 在執(zhí)行事務(wù)處理中的任何操作之前,必須使用 Begin 命令來開始事務(wù)處理 Commit: 在成功將所有修改都存儲于數(shù)據(jù)庫時,才算是提交了事務(wù)處理 Rollback: 由于在事務(wù)處理期間某個操作失敗,而取消事務(wù)處理已做的所有修改,這時將發(fā)生回滾,事務(wù)處理命令,.NET 中的事務(wù)處理,SqlTransaction 類,方法,屬性,Save( ),Rollback( ),Commit( ),Connection,SqlTransaction 類表示要對數(shù)據(jù)源進行的事務(wù)處理,SqlTransaction 類,在 ADO.NET 中實現(xiàn)事務(wù)處理時執(zhí)行的步驟順序,SqlConnection objSqlConnection = new SqlConnection (“server=SQLDB; uid=sa; pwd=password; database=pubs“); objSqlConnection.Open();,創(chuàng)建數(shù)據(jù)庫連接并打開該連接,SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction();,使用 BeginTransaction() 方法開始事務(wù)處理,SqlTransaction 類,objSqlCommand.Transaction = objSqlTransaction;,將 Command 對象的 Transaction 屬性設(shè)置為事務(wù)處理對象,insertCommand = “Insert into Student (Id, Name)values (111, “Jim“); objSqlCommand.CommandText = insertCommand; objSqlCommand.ExecuteNonQuery ();,執(zhí)行 SQL 命令,objSqlTransaction.Commit();,如果操作過程中沒有錯誤,則提交事務(wù)處理。如果操作過程中發(fā)生錯誤,則回滾已完成的所有修改,objSqlConnection.Close();,關(guān)閉連接,應(yīng)用程序示例,在 VS.NET 2003 中新建一個名為示例 1 的基于 Windows 的項目。將默認(rèn)窗體重命名為 frmFlight.cs,用戶界面,應(yīng)用程序示例,應(yīng)用程序示例,/ Connection 對象和 Command 對象 private SqlConnection objSqlConnection; private SqlCommand objSqlCommand; / 類變量 private string insCmd; private string modCmd; private string delCmd;,private void frmFlight_Load(object sender, System.EventArgs e) / 初始化 connection 對象 objSqlConnection = new SqlConnection (“server = VIJAYK; database = Flights; uid = sa; pwd = playware“); / 將座位數(shù)量添加到組合框中 this.cboSeats.Items.Clear(); this.cboSeats.Items.Add(“100“); this.cboSeats.Items.Add(“150“); this.cboSeats.Items.Add(“200“); this.btnModify.Enabled = false; this.btnDelete.Enabled = false; ,給組合框添加項并禁用按鈕,初始化 connection 對象,應(yīng)用程序示例,private void btnAdd_Click(object sender, System.EventArgs e) / 插入命令 insCmd = “insert into FlightDetails values (“+this.txtFlightCode.Text+“, “+this.txtAirline.Text+“,“ +this.txtDestination.Text+“, “+this.txtSource.Text+“,“ +this.txtArrival.Text+“, “+this.txtDeparture.Text+“, “ +this.cboSeats.SelectedItem.ToString()+“)“; / 初始化 command 對象 objSqlCommand = new SqlCommand(insCmd, objSqlConnection);,將插入命令和 connection 對象傳遞給 command 對象,btnAdd Click 事件處理程序,應(yīng)用程序示例 7-5,try / 打開連接 objSqlConnection.Open(); / 執(zhí)行插入語句 objSqlCommand.ExecuteNonQuery(); MessageBox.Show(“已成功添加記錄“); / 啟用和禁用按鈕 this.btnModify.Enabled = true; this.btnDelete.Enabled = true; this.btnAdd.Enabled = false; this.txtFlightCode.Enabled = false; catch(SqlException ex) MessageBox.Show(ex.Message); finally / 關(guān)閉連接 objSqlConnection.Close(); ,打開連接并執(zhí)行 objSqlCommand 中的命令,btnAdd Click 事件處理程序,應(yīng)用程序示例 7-6,private void btnModify_Click(object sender, System.EventArgs e) modCmd = “update FlightDetails set Airline = “ +this.txtAirline.Text+“, Destination = “ +this.txtDestination.Text+“, Source = “+this.txtSource.Text+“, Arrival = “+this.txtArrival.Text+“, Departure = “+this.txtDeparture.Text+“, TotalSeats = “+this.cboSeats.SelectedItem.ToString()+“ where FlightCode like “+this.txtFlightCode.Text+“; objSqlCommand = new SqlCommand(modCmd, objSqlConnection); try objSqlConnection.Open(); objSqlCommand.ExecuteNonQuery(); MessageBox.Show(“已成功更新記錄“); catch(SqlException ex) MessageBox.Show(ex.Message); finally objSqlConnection.Close(); ,設(shè)置更新命令,btnModify Click 事件處理程序,Sample Application 7-7,private void btnDelete_Click(object sender, System.EventArgs e) delCmd = “delete from FlightDet

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論