關于ADO內存數據對象SqlDataAdapter類使用
ADO還是比較常用的,于是我研究了一下ADO內存數據對象,在這里拿出來和大家分享一下,希望對大家有用。ADO(ActiveX Data Object的簡稱)是Microsoft為***和***大的數據訪問范例OLE DB而設計的,是一個便于使用的應用程序層接口。ADO通過OLE DB提供訪問和操作數據庫服務器中的數據。
ADO不僅可以訪問關系型數據庫,還可以訪問非關系型數據庫。同時由于OLE DB是基于COM接口的技術,使用這種技術可以直接對數據庫的驅動程序進行訪問,從而大大提供了訪問速度。與眾多的數據庫編程接口比較,ADO具有易于使用、速度快、內存支出少和磁盤遺跡小等優點。
#T#但由于Microsoft并沒有提供有關ADO的類,更不幸的是微軟所提供的ADO文檔幾乎沒有關于Visual C++的內容,這使得Visual C++程序開發人員要想利用ADO訪問數據庫相對比較麻煩。然而這又是每個Visual C++程序員不可回避的問題。解決這個問題的比較可行的辦法就是自己編寫這個類。ADO內存數據對象DataSet---從數據源中檢索出的數據在內存中的緩存,包括表、行、列,還包含數據約束和關系數據是通過數據適配器從數據源進入到內存數據對象中的。
ADO內存數據對象SqlDataAdapter類使用SqlDataAdapter在數據庫和DataSet之間架起橋梁:
- void UseDataAdapter()
- {
- //1 連接數據庫
- //2 創建一個SqlDataAdapter對象
- SqlDataAdapter adapter = new SqlDataAdapter();
- //3 利用SqlDataAdapter查詢數據,并把數據放在DataSet中
- SqlCommand selectCmd = new SqlCommand();
- selectCmd.Connection = myCon;
- selectCmd.CommandText = "SELECT SupplierID, CompanyName FROM Suppliers;";
- adapter.SelectCommand = selectCmd;
- DataSet dataSet = new DataSet("Suppliers");
- adapter.Fill(dataSet);//Fill數據
- Page.Response.Write("已連查詢數據,并放入DataSet中<br />");
- //4 利用SqlDataAdapter對象操作語句
- //4.1 Update
- SqlCommand updateCmd = new SqlCommand();
- updateCmd.Connection = myCon;
- updateCmd.CommandText = "UPDATE Customers SET CompanyName='KFC' WHERE CustomerID = 'ALFKI'";
- adapter.UpdateCommand = updateCmd;
- //4.2 Delete
- SqlCommand deleteCmd = new SqlCommand();
- deleteCmd.Connection = myCon;
- deleteCmd.CommandText = "DELETE Customers WHERE CustomerID = 'ALFKI'";
- adapter.DeleteCommand= deleteCmd;
- //4.3 Insert
- SqlCommand insertCmd = new SqlCommand();
- insertCmd.Connection = myCon;
- insertCmd.CommandText = "INSERT INTO Customers(CustomerId) values ('ALFKI')";
- adapter.InsertCommand = insertCmd;
- //4.4 執行操作
- adapter.Update(dataSet);
- Page.Response.Write("已連操作數據,包括:修改、刪除、插入<br />");
- //5 關閉數據庫連接
- myCon.Close();
- Page.Response.Write("已關閉數據庫<br />");
- }