案例評測ADO.NET與PowerBuilder區別
ADO.NET還是比較常用的,于是我研究了一下ADO.NET與PowerBuilder,以評測的形式通過一個非常簡單的例子,把ADO.NET與PowerBuilder進行多方面的比較,從而揭示兩種平臺下數據庫應用開發能力,包括功能、性能、體系結構的綜合評價。在這里拿出來和大家分享一下,希望對大家有用。
1.評測對象描述
#T#.NET框架提供了強大的WINDOWSFORMS工具,可以快速開發用戶界面。同時,.NET框架提供了豐富的對象用來管理數據庫操作,這些類總稱為ADO.NET,ADO.NET主要是一種非連接型的數據架構。在非連接型架構中,數據從數據庫中取出,緩存在本地機器中,可以在本機上處理數據,僅在改變記錄或獲取新數據時才與數據庫連接。數據庫連接要占用大量資源,數據架構與數據庫不保持連接最大的好處就是比較節省資源。非連接型數據對象的工作模式與WEB很像。所有WEB會話都是非連接型的,狀態不會在不同的頁面請求之間保留,因此非連接型數據架構與WEB的配合更清晰。
PowerBuilder是著名的數據庫應用開發工具生產廠商PowerSoft公司推出的產品(PowerSoft現已被數據庫廠商Sybase所收購),它完全按照客戶機/服務器體系結構研制設計,在客戶機/服務器結構中,它使用在客戶機中,作為數據庫應用程序的開發工具而存在。由于PowerBuilder采用了面向對象和可視化技術,提供可視化的應用開發環境,使得我們利用PowerBuilder(后面簡稱PB),可以方便快捷地開發出利用后臺服務器中的數據和數據庫管理系統的數據庫應用程序。
2.評測內容
1)編程效率(主要從windowsforms快速開發評測)。
2)數據表現形式。(主要從windowsforms快速開發評測)
3)數據操縱。(主要從ADO.NET連接數據庫,操縱數據庫數據評測)
4)ADO.NET事務處理,連接池的使用,通過使用System.Data.SqlClient/OracleClient命名空間,改變連接字符串,測試數據檢索速度。
5)定性評價:遠程訪問等。
3.ADO.NET與PowerBuilde評測方法
開發一個數據庫程序
1、利用WINDOWSFORMS開發程序界面。程序界面主要使用數據綁定控件DATAGRID,文本框,標簽等常用控件,將數據庫中的數據表現出來。和PB比較開發效率。
2、利用ADO.NET連接數據庫,操縱數據庫中數據。通過ADO.NET連接到本機數據庫中的表“GLDW”,使用ADO.NET對象模型中DATASET對象和DATAADAPTER對象,實現數據檢索,數據更新,數據添加,數據刪除等功能。并和PB中DATAWINDOW這方面功能進行比較,指出兩者的區別。用具體數據量做比較。數據庫連接方法1:(使用OLEDB,名字空間System.Data.OleDb)
- stringconnectstr="Provider=MSDAORA.1;Password=gdmis;UserID=gdmis;DataSource=ms_fengguol.bj.xjgc.com";
- stringconmmandstr="select*fromgldw";
- OleDbDataAdaptermyDataAdpater=newOleDbDataAdapter(conmmandstr,connectstr);
數據庫連接方法2:(使用.netDataProvider,名字空間System.Data.OracleClient)
- Stringconnectstr="Password=gdmis;UserID=gdmis;DataSource=ms_demo";
- stringconmmandstr="select*fromgldw";
- OracleDataAdaptermyDataAdpater=newOracleDataAdapter(conmmandstr,connectstr);
連接數據庫后,生成數據集,檢索數據只要用一行編碼:
- dataAdapter1.fill(dataSet11);
實現添加功能的代碼:
- DataRownewRow=dataSet11.Tables["gldw"].NewRow();
- newRow["dwbm"]=textDWH.Text;
- newRow["dwmc"]=textDWMC.Text;
- newRow["bz"]=textBZ.Text;
- newRow["sqbm"]=textSQM.Text;
- newRow["id"]=textID.Text;
- dataSet11.Tables["gldw"].Rows.Add(newRow);
- oleDbDataAdapter1.Update(dataSet11,"gldw");
- Application.DoEvents();
- dataSet11.AcceptChanges();
實現刪除功能的代碼:
- dataSet11.Tables["gldw"].Rows[dataGrid1.CurrentRowIndex].Delete();
- oleDbDataAdapter1.Update(dataSet11,"gldw");
- dataSet11.AcceptChanges();
實現更新功能的代碼:
- oleDbDataAdapter1.Update(dataSet11,"gldw");
- dataSet11.AcceptChanges();