ADO 2.6 vs. the ADO.NET
在本例中我们需要IIS5环境、Visual Studio.NET BETA1、还有SQL SERVER中的Northwind数据库
在.NET中,保持了对早先COM及基于COM技术的良好支持,在本例中提供了两种方法:GetCustomersOld() 使用了ADO2.6;GetCustomer ew() 使用ADO.NET,可以对比。
name ace PROINFO.We ervice.Data
{
using System;
using System.Collectio
using System.Configuratio
using System.ComponentModel;
using System.Data;
using System.Data.SQL;
using System.Diagnostic
using System.We
using System.Web.Service
/// < ummary>
/// Summary description for WS.
/// </summary>
public cla WS : System.Web.Services.We ervice
{
public WS()
{
//CODEGEN: This call is required by the A + Web Services Designer
InitializeComponent();
}
/// < ummary>
/// Required method for Designer su ort - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
/// < ummary>
/// Clean up any resources being used.
/// </summary>
public override void Di ose()
{
}
// Here starts the example code
public struct sCustomers
{
public String sCustomerID;
public String sCompanyName;
public String sContactName;
public String sContactTitle;
public String sAddre
public String sCity;
public String sRegio
public String ostalCode;
public String sCountry;
public String hone;
public String sFax;
}
[WebMethod(Description="ADO 2.6 WebMethod Example")]
public sCustomers[] GetCustomersOld()
{
ADODB.Co ection cn = new ADODB.Co ection();
ADODB.Recordset rs = new ADODB.Recordset();
String strSQL;
int intRC;
int intCnt;
strSQL = " ELECT * FROM Customer quot
cn.Open(" rovider=SQLOLED Data Source=SERVER; Initial Catalog=Northwind quot;, " a", null, 0);
rs.Open(strSQL, cn, ADODB.CursorTypeEnum.adOpe tatic, 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].sAddre = rs.Fields["Addre quot;].Value.ToString();
c[intCnt].sCity = rs.Fields["City"].Value.ToString();
c[intCnt].sRegion = rs.Fields["Regio quot;].Value.ToString();
c[intCnt]. ostalCode = rs.Fields[" ostalCode"].Value.ToString();
c[intCnt].sCountry = rs.Fields["Country"].Value.ToString();
c[intCnt]. hone = rs.Fields[" hone"].Value.ToString();
c[intCnt].sFax = rs.Fields["Fax"].Value.ToString();
rs.MoveNext();
intCnt++;
}
return c;
}
[WebMethod(Description="ADO.NET WebMethod Example")]
public DataSet GetCustomer ew()
{
DataSet ds = new DataSet();
SQLCo ection cn = new SQLCo ection("localhost", " a", " quot;, " orthwind");
cn.Open();
SQLDataSetCommand cm = new SQLDataSetCommand(" ELECT * FROM Customer quot;, cn);
cm.FillDataSet(ds, "Customer quot;);
return d
}
}
} an>


