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