淺析使用ADO.NET讀取數(shù)據(jù)
ADO.NET還是比較常用的,于是我研究了一下ADO.NET讀取數(shù)據(jù),在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。一種方式是直接和數(shù)據(jù)庫(kù)連接,即使用Command對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)。采用這種方式是通過(guò)DataReader對(duì)象ADO.NET讀取數(shù)據(jù),然后利用 Response.Write顯示數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是不用占用額外的內(nèi)存,而是讀取數(shù)據(jù)的速度比較快,但是,需要編寫(xiě)的程序代碼比較長(zhǎng)。
另一種方式是將數(shù)據(jù)緩存DataSet中,即使用DataAdapter對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)。采用這種方式是通過(guò)配合DataSet對(duì)象所提供的接口,利用DataGrid對(duì)象直接顯示數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是所需要編寫(xiě)的代碼比較少,但是需要占用額外的內(nèi)存,并且ADO.NET讀取數(shù)據(jù)的速度相對(duì)前一種方式比較慢。
舉例說(shuō)明:
- private void BindData()
- {
- SqlConnection myConnection=conn();
- string queryStr="select RecordNO,SendTime,Creater,CustomerID,SMSInfor from SendBoxInformation order by RecordNO DESC";
- SqlDataAdapter myDataAdapter=new SqlDataAdapter(queryStr,myConnection);
- DataSet myDataSet=new DataSet();
- myDataAdapter.Fill(myDataSet,"SendBox");
- if(myDataSet.Tables["SendBoxInformation"].Rows.Count>0)
- {
- DataGrid1.DataSource=myDataSet.Tables["SendBox"].DefaultView;
- DataGrid1.DataBind();
- }
- else
- {
- DataGrid1.Visible=false;
- }
- }
#T#這是自定義的數(shù)據(jù)訪問(wèn)的函數(shù):使用ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的途徑二:Connection -> DataAdapter -> DataSet -> DataGrid工作流程:指定數(shù)據(jù)源,連接Microsoft SQL Server 7.0以上版本,使用SQL Server .NET Framework數(shù)據(jù)提供程序的SqlConnection對(duì)象。寫(xiě)入相關(guān)的SQL語(yǔ)句,創(chuàng)建訪問(wèn)數(shù)據(jù)表的DataAdapter對(duì)象。使用DataSet對(duì)象存放數(shù)據(jù)表,填充至DataAdapter對(duì)象。使用DataGrid控件綁定數(shù)據(jù),顯示數(shù)據(jù)表。
展望
從紛繁蕪雜的關(guān)系數(shù)據(jù)模型中抽象出概念模型。這樣開(kāi)發(fā)人員可以只需著眼概念模型,而不必要去關(guān)心紛繁蕪雜的關(guān)系數(shù)據(jù)模型,從而提高開(kāi)發(fā)效率。那么如何能夠做到這一點(diǎn)?答案就是:Language-Integrated Query 和 ADO.NET Entity Framework,也就是下一代的ADO.NET Entity Framework包括
1. 實(shí)體數(shù)據(jù)模型(Entity Data Model),開(kāi)發(fā)人員通過(guò)EDM抽象出非常合適的模型。
2. 非常強(qiáng)大的client-view/mappping引擎,用于映射數(shù)據(jù)關(guān)系
3. Entity SQL語(yǔ)言和LINQ查詢(xún)對(duì)EDM schemas的全面支持
4. ojbect services layer供您選擇以何種方式去處理查詢(xún)結(jié)果。比如(行,列或作為對(duì)象)。
5. 提供一個(gè)開(kāi)放的模型使ADO.NET Entity Framework可以處理其他的數(shù)據(jù)存儲(chǔ)。