Lp trình và Thit k Web 2 Bài 7 ThaoThao táctác CSDL CSDL vivi ADO .NETADO .NET Ths. TrnTh Bích Hnh Khoa CNTT Khoa CNTT –– H.KHTNH.KHTN © 2009 Khoa Công ngh thông tin Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NiNi dungdung NiNi dungdung GiithiuADO .NET KintrúcADO .NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 2 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Ni dungNi dung Ni dungNi dung GiithiuADO .NET Kin trúc ADO.NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 3 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ADO NETADO NET làlà gìgì ?? ADO . NET ADO . NET làlà gìgì ?? ADO.NET AtiXDtObjtNET – A c ti ve X D a t a Obj ec t . NET – Công ngh caMicrosoft Phát ti t ADO – Phát t r i n t ADO – Cung cpcácđitng và hàm th vin dùng đ kt nivàx l ý trên CSDL ý © 2009 Khoa CNTT - HKHTN 4 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET SS lclc lchlch ss phátphát trintrin SS lclc lchlch ss phátphát trintrin Native API DB API DB API DB API Application Database Di DB API OOpen pen DDataataBBase ase CConnectivityonnectivity ODBC Driver Driver D r i ve r ODBC API DB API DB API © 2009 Khoa CNTT - HKHTN A pplication Database 5 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET SS lclc lchlch ss phátphát trintrin (( tttt )) SS lclc lchlch ss phátphát trintrin (( tttt )) OLEDB và ADO Provider Provider ADO OLE DB Non-Relational Data Pr o vi de r Provider Provider Application ODBC Driver Driver ode Relational Data Driver © 2009 Khoa CNTT - HKHTN 6 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET SS lclc lchlch ss phátphát trintrin (( tttt )) SS lclc lchlch ss phátphát trintrin (( tttt )) .NET Data Provider ADO.NET Oracle SQL Server Relational Data OLE DB Oracle OLE DB A DO.NET Application ODBC Non-Relational Data ODBC © 2009 Khoa CNTT - HKHTN 7 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Ni dungNi dung Ni dungNi dung Giithiu ADO.NET KintrúcADO .NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 8 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Kintrúcca ADO NETKintrúcca ADO NET Kin trúc ca ADO . NETKin trúc ca ADO . NET © 2009 Khoa CNTT - HKHTN 9 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NamespacesNamespaces NamespacesNamespaces Nu ng dng .NET cntruyxutd liu Phi khai báo namespace ADO NET tng ng vi d liu cho ng dng namespace ADO . NET tng ng vi d liu cho ng dng i vi d liu OLE i vi d liu OLE – using System.Data; – usin g S y stem.Data.OleDB ; g y ; iv i d li u SQ L Se rv e r d u SQ Se e – using System.Data; – using System.Data.SqlClient; © 2009 Khoa CNTT - HKHTN 10 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Ni dungNi dung Ni dungNi dung Giithiu ADO.NET KintrúcADO .NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 11 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Mô hình s dng ADO NET viPhnmmMô hình s dng ADO NET viPhnmm Mô hình s dng ADO . NET vi Phn mmMô hình s dng ADO . NET vi Phn mm SqlDataReader DataSet SqlConnection S q lDataAda p te r SqlCommand SQL qp © 2009 Khoa CNTT - HKHTN 12 12 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Mô hình s dng ADO NET viPhnmmMô hình s dng ADO NET viPhnmm Mô hình s dng ADO . NET vi Phn mmMô hình s dng ADO . NET vi Phn mm 3 SqlDataReader Select 1 3 SqlConnectionSqlCommand 2 1 2 SQL 1 Insert Delete Update StoreProcedure Functions © 2009 Khoa CNTT - HKHTN 13 13 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Mô hình s dng ADO NET viPhnmmMô hình s dng ADO NET viPhnmm Mô hình s dng ADO . NET vi Phn mmMô hình s dng ADO . NET vi Phn mm 4 DataSet 5 SqlConnectionSqlDataAdapter 3 5 6 SQL Select Insert 1 2 1 Delete Update SqlCommand © 2009 Khoa CNTT - HKHTN 14 14 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Ni dungNi dung Ni dungNi dung Giithiu ADO.NET KintrúcADO .NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 15 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider . NET Data Provider . NET Data Provider Connection Command & Parameter DataReader DataSet & DataAdapter Transaction © 2009 Khoa CNTT - HKHTN 16 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider ConnectionConnection . NET Data Provider . NET Data Provider ConnectionConnection Data Source Connection Application SQL Thitlpktni đn Data Source Data Source Application Thuctính ConnectionString: Luchuiktni đn Data Source State: cho bittìnhtr n g caktni g Phng thc Open(): thitlpktni đn Data Source. © 2009 Khoa CNTT - HKHTN Close(): ng tk tn i đ n Data Source. 17 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET VíVí dd VíVí dd using System.Data.SqlClient; string sConnectionString = " Initial Catalog=Northwind; Data Source=localhost; user=sa ; ; password=sa;”; SqlConnection cnn = new SqlConnection (); SqlConnection cnn = new SqlConnection (); cnn.ConnectionString = sConnectionString; cnn.Open(); // do somethings Cl () © 2009 Khoa CNTT - HKHTN cnn. Cl ose () ; 18 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Connection string (Access, SQL Server,…)Connection string (Access, SQL Server,…) To connection string To connection string Database ODBC/OLEDB Connection String Microsoft Access Provider=Microsoft.Jet.OLEDB.4.0; Data Source=ngDnnFileAccess Microsoft SQL Provider=SQLOLEDB;Data Source=ServerName; Initial Catalog=DatabaseName; UserId= Username; Password=Password; String strConn = string.Format(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}”, HttpContext.Current.Server.MapPath(“database/mydb.mdb”)); © 2009 Khoa CNTT - HKHTN REF: http://www.connectionstrings.com/ 19 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ng dntitp tin Accessng dntitp tin Access ng dn ti tp tin Accessng dn ti tp tin Access HttpContext.Current.Server.MapPath(StringPath) – ánh xđng dntng đi StringPath thành đng dn đnth mcvtlýtrênServer – Ví d : Gi s tp tin aspx s dng hàm Server MapPath – Ví d : Gi s tp tin aspx s dng hàm Server . MapPath đcluti D:\MyWebsite Kt qu S M P th( “ DB db ” ) D \ MWbit \ DB db S erver. M ap P a th( my DB .m db ) ; D : \ M y W e b s it e \ my DB .m db Server.MapPath(“Database/myDB.mdb”); D:\MyWebsite\Database\myDB.mdb Server.MapPath(“ /myDB.mdb”); D:\myDB.mdb © 2009 Khoa CNTT - HKHTN 20 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET CuCu hìnhhình lulu ConnectionStringConnectionString trongtrong Web ConfigWeb Config CuCu hìnhhình lulu ConnectionStringConnectionString trongtrong Web . ConfigWeb . Config // Web.Config <configuration> <connectionStrings> <add name=“ OleDbConnectionString" connectionString=“ Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|\DatabasePath" /> dd lii <a dd name=“ S q l Connect i onStr i ng" connectionString=" SQLOLEDB;Data Source=ServerName; Initial Catalog= DatabaseName; UserId=Username; Password=Password" /> </connectionStrings> b <system.we b > … </system.web> </configuration> // WebForm.aspx.cs using System.Configuration; string strConn © 2009 Khoa CNTT - HKHTN 21 string strConn = ConfigurationManager.ConnectionStrings[“SqlConnectionString"].ToString(); Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Connection PoolingConnection Pooling Connection PoolingConnection Pooling SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind"; conn.Open(); // Pool A is created. SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs"; conn.Open(); // Pool B is created because the connection strings differ. SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind"; () // h ti t i t h l © 2009 Khoa CNTT - HKHTN conn.Open () ; // T h e connec ti on s t r i ng ma t c h es poo l A. 22 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider . NET Data Provider . NET Data Provider Connection Command & Parameter DataReader DataSet & DataAdapter Transaction © 2009 Khoa CNTT - HKHTN 23 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET .NET Data Provider .NET Data Provider –– Command & Paramete r Command & Paramete r SqlDataReader 3 SqlConnectionSqlCommand Select 2 1 2 SQL 1 2 2 Insert SqlParameter SQL Delete Update StoreProcedure Functions Thcthicâutruyvn Functions © 2009 Khoa CNTT - HKHTN H tr tham s vào, tham s ra, và giá tr tr v 24 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET CommandCommand HàmHàm khikhi toto vàvà ThucThuc tínhtính Command Command HàmHàm khikhi toto vàvà ThucThuc tínhtính Các hàm khito new ???Command() new ???Command() new ???Command(cmdText) new ???Command(cmdText, connection) ???C d( dT t ti t ti ) new ???C omman d( c m dT ex t , connec ti on, t ransac ti on ) Thuc tính Ý ngha Connection Tr đn đitng ktni . Connection Tr đn đi tng kt ni .CommandType CommandType.Text (mc đnh) CommandType.StoreProcedure CommandT yp e.TableDirect yp .CommandText Câu truy vn SQL hoc tên Store, tên Bng .CommandTimeOut Thi gian ch đi thc thi 1 câu sql Parameters Danh sách các tham s truyn vào © 2009 Khoa CNTT - HKHTN . Parameters Danh sách các tham s truyn vào 25 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET CommandCommand PhngPhng thcthc Command Command PhngPhng thcthc Phng thc Ý ngha Phng thc Ý ngha .ExecuteReader() Tr v mt DataReader .ExecuteNonQuery() Tr v s lng dòng b nh hng trên CSDL .ExecuteScaler() Tr v 1 giá tr đu tiên (VD: giá tr tính t ng) .ExecuteXMLReader() Tr v 1 XMLReader © 2009 Khoa CNTT - HKHTN 26 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET VíVí dd OleDbCommandOleDbCommand VíVí dd OleDbCommandOleDbCommand using System.Data.OleDb; OleDbConnection cnn = new OleDbConnection(); cnn.ConnectionString = string.Format ( " Provider = Microsoft.Jet.OLEDB. 4 . 0 ; Data string.Format ( Provider Microsoft.Jet.OLEDB. 4 . 0 ; Data Source={0}", Server.MapPath("~/App_Data/QLHS.mdb")); OleDbCommand cmd = new OleDbCommand(); d Cti c m d . C onnec ti on = cnn; cmd.CommandText = "INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb)VALUES(5, 'Nguyn Vn A', 8.5)"; cmd.CommandType = CommandType.Text; cnn.Open(); cmd ExecuteNonQuery (); © 2009 Khoa CNTT - HKHTN cmd . ExecuteNonQuery (); cnn.Close(); 27 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET VíVí dd SqlCommandSqlCommand VíVí dd SqlCommandSqlCommand using System.Data.SqlClient; SqlConnection cnn = new SqlConnection(); cnn. ConnectionString =" Initial Catalog = Northwind ; cnn. ConnectionString Initial Catalog Northwind ; Data Source=localhost; user=sa; password=sa;”; SqlCommand cmd = new SqlCommand(); d Cti cm d . C onnec ti on = cnn; cmd. CommandText = "SELECT COUNT(*) FROM Orders"; cmd.CommandT yp e = CommandT yp e.Text; yp yp cnn.Open(); int count = (int)cmd.ExecuteScalar(); © 2009 Khoa CNTT - HKHTN cnn.Close(); 28 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider ParameterParameter . NET Data Provider . NET Data Provider ParameterParameter nh ngha tham s tr n ào cho đi t ng Command nh ngha tham s tr uy n v ào cho đi t ng Command Có các thuc tính sau : Thuc tính Ý ngha ParameterName Tên tham s SqlDbType Kiud liuca tham s tng ng vikiud liuca SqlServer Direction Input, Output, InputOutput, ReturenValue, … Size Kích thc ti đa ca d li u Value Giá tr ca tham s (input / Output) © 2009 Khoa CNTT - HKHTN 29 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ParameterParameter –– CáchCách ss dngdng Parameter Parameter –– CáchCách ss dngdng Mc đích s dng: Mt vài giá tr trong câu lnh ch bi tkhithchincâulnh. Cnthchincâulnh nhiulnvi các giá tr khác nhau. Các bcthchin: Tham s hóa câu truy vn : ? hoc @[ tên tham s ] Tham s hóa câu truy vn : ? hoc @[ tên tham s ] . To các parameters tng ng cho command. tgiátr cho các parameter mi khi dùng command thchin câu lnh câu lnh . © 2009 Khoa CNTT - HKHTN 30 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ParameterParameter –– ThamTham ss hóahóa câucâu truytruy vnvn Parameter Parameter –– ThamTham ss hóahóa câucâu truytruy vnvn SQL Data Provider: cmd CommandTe t cmd . CommandTe x t = “SELECT * FROM HocSinh WHERE tenhocsinh = @ten”; cmd.CommandText = “ INSERT INTO HocSinh ( id hocsinh , tenhocsinh , dtb ) ” + INSERT INTO HocSinh ( id _ hocsinh , tenhocsinh , dtb ) + “VALUES(@id, @ten, @dtb)”; Các provider khác : Các provider khác : cmd.CommandText = “SELECT * FROM HocSinh WHERE tenhocsinh = ?”; dd cm d .Comman d Text = “INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb)” + “VALUES(?, ?, ?)”; © 2009 Khoa CNTT - HKHTN 31 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ParameterParameter –– ToTo cáccác thamtham ss chocho CommandCommand Parameter Parameter –– ToTo cáccác thamtham ss chocho CommandCommand Sql Data Provider: ddd (“ id ” lb ) cm d .Parameters.A dd (“ id ” , Sq l D b Type.Int ) ; cmd.Parameters.Add(“ ten”, SqlDbType.NVarChar); cmd.Parameters.Add(“ dtb”, SqlDbType.Float); OleDb Data Provider: cmd Parameters Add ( “ id ” OleDbType Integer ); cmd . Parameters . Add ( id , OleDbType . Integer ); cmd.Parameters.Add(“ten”, OleDbType.VarWChar); cmd.Parameters.Add(“ dtb”, OleDbType.Numeric); © 2009 Khoa CNTT - HKHTN 32 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ParameterParameter –– tt giágiá trtr chocho cáccác thamtham ss vàvà thcthc thithi Parameter Parameter –– tt giágiá trtr chocho cáccác thamtham ss vàvà thcthc thithi foreach (Student s in studentList) { { cmd.Parameters[“id”].Value = i; cmd.Parameters [ “ten” ] .Value = s.studentName ; [ ] ; cmd.Parameters[“dtb”].Value = s.studentMarks; cmd.ExecuteNonQuery(); } © 2009 Khoa CNTT - HKHTN 33 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET VíVí dd GiGi StoredProcedureStoredProcedure VíVí dd GiGi StoredProcedureStoredProcedure © 2009 Khoa CNTT - HKHTN 34 34 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider . NET Data Provider . NET Data Provider Connection Command & Parameter DataReader DataSet & DataAdapter Transaction © 2009 Khoa CNTT - HKHTN 35 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider DataReaderDataReader . NET Data Provider . NET Data Provider DataReaderDataReader SqlDataReader 3 ExecuteReader () SqlConnectionSqlCommand 2 ExecuteReader () SQ L Select 1 2 SQ T t t t à khô li Select BookIDBookID BookNameBookName AuthorAuthor ii Book iBook i Author Author ii T ruy xu t t u n t v à khô ng quay l u i Chđc, Không cpnhtd liu © 2009 Khoa CNTT - HKHTN Ch luli 1 record k tqu trong b nh vim il ntruyxu t 36 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET DataReaderDataReader DataReaderDataReader Mt s th c tính & ph ng thc Mt s th u c tính & ph ng thc : Thuc tính Ý ngha HasRows Tr v xem DataReader có đc đc d liu nào không. FieldCount Tr v s lng thuc tính trong dòng hin ti (đang đc) [ int /string] Tr v giá tr ca thuc tính đang yêu cu [ int /string] Tr v giá tr ca thuc tính đang yêu cu Phng thc Ý ngha R d() dd li k ti R ea d() c recor d d li u k ti p IsDBNull(i) Kim tra xem giá tr ct i có b null không Close() óng DataReader © 2009 Khoa CNTT - HKHTN 37 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET VíVí dd : Load: Load dd liuliu vàovào ListList VíVí dd : Load : Load dd liuliu vàovào ListList © 2009 Khoa CNTT - HKHTN 38 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET NET Data ProviderNET Data Provider . NET Data Provider . NET Data Provider Connection Command & Parameter DataReader DataSet & DataAdapter Transaction © 2009 Khoa CNTT - HKHTN 39 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ii tngtng DataSetDataSet vàvà DataAdapterDataAdapter ii tngtng DataSetDataSet vàvà DataAdapterDataAdapter DataSet Data source DataAdapter DataTable Fill Fill Update DataTable DataAdapter Fill Update Fill © 2009 Khoa CNTT - HKHTN 40 [...]... SqlDataReader SqlCommand SqlConnection SQL SqlParameter T-SQL : Select 1 T-SQL : Insert 1 T-SQL : Update2 T-SQL : Select 2 53 © 2009 Khoa CNTT - 54 HKHTN L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET © 2009 Khoa CNTT - L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Th c hi n giao tác v i ng d ng CSDL Th c hi n giao tác v i ng d ng CSDL Cách 2 : Cách 2 : Calling sp_AAA StoredProcedure... SqlConnection T-SQL : Select 1 T-SQL : Insert 1 T-SQL : Update2 T-SQL : Select 2 T-SQL : Insert 1 T-SQL : Select 2 T-SQL : Select 1 T-SQL : Insert 1 T-SQL : Update2 T-SQL : Select 2 T-SQL : Update2 T-SQL : Insert 1 SqlTransaction T-SQL : Update2 T-SQL : Select 2 © 2009 Khoa CNTT - SQL SqlParameter T-SQL : Select 1 55 HKHTN HKHTN 56 © 2009 Khoa CNTT - HKHTN T-SQL : Select 1 L p trình và Thi t k Web 2 – Bài 7: Thao. .. v i CSDL © 2009 Khoa CNTT - HKHTN GetXML(), ReadXML(), WriteXML() 44 © 2009 Khoa CNTT - HKHTN i trên DataSet ang xét L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Ví d NET Data Provider NET Connection Command & Parameter DataReader DataSet & DataAdapter Transaction 45 © 2009 Khoa CNTT - HKHTN 45 46 L p trình và Thi t k Web. .. Accounts SET balance = balance - 100 SET balance=balance - 100 WHERE number = 123; WHERE number = 123; COMMIT SELECT balance FROM Accounts SELECT balance WHERE number = 123 FROM Accounts ROLLBACK 49 © 2009 Khoa CNTT - WHERE number = 123 50 HKHTN © 2009 Khoa CNTT - L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Phantoms L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET M c Transaction...L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET it ng DataSet và DataAdapter L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Mô hình it ng DataAdapter DataSet – Là c s d li u database) – M i thao tác thay không làm nh h khô là h c l u tr trong b nh chính (in memory (in-memory SqlDataAdapter S lD t Ad t SelectCommand UpdateCommand... int nvarchar(50) Balance double WHERE number = 123; UPDATE Accounts SET balance = balance - 500 WHERE number = 123; 47 © 2009 Khoa CNTT - HKHTN 48 © 2009 Khoa CNTT - HKHTN L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Dirty Reads NonNon-repeatable Reads Transaction 1 Transaction 2 Transaction 1 SELECT balance SELECT balance... Commit(…) RollBack(…) ( ) Save(SavePointName) 57 T o save point © 2009 Khoa CNTT - có th Rollback HKHTN 58 L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Ví d - Thi t l p IsolationLevel © 2009 Khoa CNTT - HKHTN L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET T ng k t Phân bi t ODBC, OLEDB, ADO, ADO.NET Mô hình s d ng ADO NET – Connection – Command & Parameter – DataReader... n trên DataSet, ng n CSDL SqlDataReader DataAdapter SqlCommand – Fill: L y d li u t CSDL vào DataSet SqlConnection – Update: Theo v t các thay i trên d li u trên DataSet và c p nh t d li u ng c vào CSDL sp_SELECT SELECT 41 © 2009 Khoa CNTT - HKHTN 42 Thu c tính sp_DELETE DELETE HKHTN L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET ng SqlDataAdapter M t s thu c tính và ph sp_INSERT INSERT... 2 – Bài 7: Thao tác CSDL v i ADO NET M ts v n truy xu t d li u © 2009 Khoa CNTT - HKHTN L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Lost Update ng th i Lost Update Transaction 1 Transaction 2 Dirty Reads SELECT balance SELECT balance Non-repeatable Reads FROM Accounts FROM Accounts WHERE number = 123; WHERE number = 123; Phantoms UPDATE Accounts Accounts SET balance = balance - 100... tác CSDL v i ADO NET L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET Th c hi n giao tác v i ng d ng CSDL Có 2 cách ng d ng ng Th c hi n giao tác v i ng d ng CSDL th c hi n 1 giao tác (nhi u l nh T-SQL) cho Cách 1 : – Cách 1 : Vi t storeproc HQTSQL + G i th c hi n store thông qua i t ng SqlCommand + SqlParamenter – Cách 2 : Qu n lý Giao tác t ng câu truy v n T-SQL g y phía ng d ng, ch . Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET ADO NETADO NET làlà gìgì ?? ADO . NET ADO . NET làlà gìgì ?? ADO. NET AtiXDtObjtNET – A c ti ve X D a t a Obj ec t . NET – Công ngh caMicrosoft Phát ti t ADO – Phát t r i n t ADO –. Giithiu ADO. NET KintrúcADO .NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 8 Lp trình và Thitk Web 2 – Bài 7: Thao tác CSDL vi ADO .NET Kintrúcca ADO NETKintrúcca. 2 – Bài 7: Thao tác CSDL vi ADO .NET Ni dungNi dung Ni dungNi dung GiithiuADO .NET Kin trúc ADO. NET Mô hình s dng ADO .NET .NET Data Provider © 2009 Khoa CNTT - HKHTN 3 Lp