案例评测ADO.NET与PowerBuilder区别

ADO.NET还是比较常用的,于是我研究了一下ADO.NET与PowerBuilder,以评测的形式通过一个非常简单的例子,把ADO.NET与PowerBuilder进行多方面的比较,从而揭示两种平台下数据库应用开发能力,包括功能、性能、体系结构的综合评价。在这里拿出来和大家分享一下,希望对大家有用。

1.评测对象描述

.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();