ADO 2.6 vs. the ADO.NET 
在本例中我们需要IIS5环境、Visual Studio.NET BETA1、还有SQL SERVER中的Northwind数据库 
在.NET中,保持了对早先COM及基于COM技术的良好支持,在本例中提供了两种方法:GetCustomersOld() 使用了ADO2.6;GetCustomersNew() 使用ADO.NET,可以对比。 
namespace PROINFO.WebService.Data 
{ 
using System; 
using System.Collections; 
using System.Configuration; 
using System.ComponentModel; 
using System.Data; 
using System.Data.SQL; 
using System.Diagnostics; 
using System.Web; 
using System.Web.Services; 
/// <summary> 
/// Summary description for WS. 
/// </summary> 
public class WS : System.Web.Services.WebService 
{ 
public WS() 
{ 
//CODEGEN: This call is required by the ASP+ Web Services Designer 
InitializeComponent(); 
} 
/// <summary> 
/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor. 
/// </summary> 
private void InitializeComponent() 
{ 
} 
/// <summary> 
/// Clean up any resources being used. 
/// </summary> 
public override void Dispose() 
{ 
} 
// Here starts the example code 
public struct sCustomers 
{ 
public String sCustomerID; 
public String sCompanyName; 
public String sContactName; 
public String sContactTitle; 
public String sAddress; 
public String sCity; 
public String sRegion; 
public String sPostalCode; 
public String sCountry; 
public String sPhone; 
public String sFax; 
} 
[WebMethod(Description="ADO 2.6 WebMethod Example")] 
public sCustomers[] GetCustomersOld() 
{ 
ADODB.Connection cn = new ADODB.Connection(); 
ADODB.Recordset rs = new ADODB.Recordset(); 
String strSQL; 
int intRC; 
int intCnt; 
strSQL = "SELECT * FROM Customers"; 
cn.Open("Provider=SQLOLEDB; Data Source=SERVER; Initial Catalog=Northwind;", "sa", null, 0); 
rs.Open(strSQL, cn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0); 
intRC = rs.RecordCount; 
if (intRC < 1) 
{ 
return null; 
} 
sCustomers[] c = new sCustomers[intRC]; 
rs.MoveFirst(); 
intCnt = 0; 
while (!rs.EOF) 
{ 
c[intCnt].sCustomerID = rs.Fields["CustomerID"].Value.ToString(); 
c[intCnt].sCompanyName = rs.Fields["CompanyName"].Value.ToString(); 
c[intCnt].sContactName = rs.Fields["ContactName"].Value.ToString(); 
c[intCnt].sContactTitle = rs.Fields["ContactTitle"].Value.ToString(); 
c[intCnt].sAddress = rs.Fields["Address"].Value.ToString(); 
c[intCnt].sCity = rs.Fields["City"].Value.ToString(); 
c[intCnt].sRegion = rs.Fields["Region"].Value.ToString(); 
c[intCnt].sPostalCode = rs.Fields["PostalCode"].Value.ToString(); 
c[intCnt].sCountry = rs.Fields["Country"].Value.ToString(); 
c[intCnt].sPhone = rs.Fields["Phone"].Value.ToString(); 
c[intCnt].sFax = rs.Fields["Fax"].Value.ToString(); 
rs.MoveNext(); 
intCnt++; 
} 
return c; 
} 
[WebMethod(Description="ADO.NET WebMethod Example")] 
public DataSet GetCustomersNew() 
{ 
DataSet ds = new DataSet(); 
SQLConnection cn = new SQLConnection("localhost", "sa", "", "Northwind"); 
cn.Open(); 
SQLDataSetCommand cm = new SQLDataSetCommand("SELECT * FROM Customers", cn); 
cm.FillDataSet(ds, "Customers"); 
return ds; 
} 
} 
}			
ADO 2.6 vs. the ADO.NET
                    80酷酷网    80kuku.com 
       
  
 
 
  
