📅  最后修改于: 2023-12-03 14:39:01.999000             🧑  作者: Mango
ADO(ActiveX Data Objects)是一组使用COM编程接口的数据访问技术,用于在Windows平台上从.NET应用程序中访问数据。ADO位于操作系统的数据访问层和应用程序的数据访问代码之间,使得开发人员可以将程序与数据操作进行分离,从而简化了应用程序的开发过程。
ADO使用了COM技术,因此需要在系统上安装COM具有的运行库(如MDAC)。
ADO.NET是.NET平台上的一种数据访问技术,它是ADO的一种进化,提供了更可靠、更稳定、更灵活和更快的数据访问方式。不同于ADO使用COM技术,ADO.NET使用.NET类库。
ADO.NET具有更多的数据提供程序,包括SQL Server、Oracle、MySQL、SQLite以及各种OLEDB和ODBC数据提供程序。开发人员可以根据需要选择相应的数据提供程序。
ADO.NET提供的DataSet和DataTable等对象都是.NET类,与.NET应用程序之间实现了更好的集成。
ADO使用COM技术,而ADO.NET使用.NET类库。
ADO通过COM暴露了某些接口,而ADO.NET提供了一个更好的统一数据访问接口,这意味着从ADO.NET访问不同的数据源变得更加容易。
ADO.NET拥有更多的数据提供程序,且具有更好的性能和可靠性。
ADO的API以Recordset为基础,而ADO.NET的API以DataSet为基础。
ADO.NET的DataSet可以在客户端进行数据的缓存和处理,而ADO只能从服务器一条记录一条记录地读取数据。
ADO.NET提供的对象都是.NET类,与.NET应用程序间实现了更好的集成,开发效率更高。
// 使用SqlDataAdapter从SQL Server中读取数据
string sqlCommand = "SELECT * FROM Customers";
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
using(SqlConnection connection = new SqlConnection(connectionString)){
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommand, connection);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "Customers");
DataTable dataTable = dataSet.Tables["Customers"];
foreach(DataRow row in dataTable.Rows){
Console.WriteLine("{0} {1} {2}", row["CustomerID"], row["CompanyName"], row["ContactName"]);
}
}
' 使用ADODB.Recordset从SQL Server中读取数据
Dim connection As ADODB.Connection
Set connection = New ADODB.Connection
connection.ConnectionString = "Provider=SQLOLEDB;Data Source=myServerAddress;" & _
"Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"
connection.Open
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Customers", connection
While Not rs.EOF
Debug.Print rs("CustomerID") & " " & rs("CompanyName") & " " & rs("ContactName")
rs.MoveNext
Wend