ADO.NET提供了两个主要的组件来访问和操作数据,它们分别是.NET Framework 数据提供程序和 DataSet,为了更好的进行数据库的程序设计,我们非常有必要了解下ADO.NET的工作机制。
.NET Framework 数据提供程序
.NET Framework 数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。
Connection 对象提供到数据源的连接。 使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 DataReader 可从数据源提供高性能的数据流。 最后,DataAdapter 在 DataSet 对象和数据源之间起到桥梁作用。 DataAdapter 使用 Command 对象在数据源中执行 SQL 命令以向 DataSet 中加载数据,并将对 DataSet 中数据的更改协调回数据源。
下面用代码列表演示如何使用SQLServer、OLE DB、ODBC的 ADO.NET 技术从数据库中检索数据
SqlClient www.zzzyk.com
假定可以连接到 Microsoft SQL Server 的 Northwind 示例数据库。代码创建一个 SqlCommand 以从 Products 表中选择行,并添加 SqlParameter 来将结果限制为其 UnitPrice 大于指定参数值的行。 SqlConnection 在 using 块内打开,这将确保在代码退出时会关闭和释放资源。示例代码使用 SqlDataReader 执行命令,并在控制台窗口中显示结果。
[plain]
<span style="font-family:SimSun;font-size:18px;">Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class Program
Public Shared Sub Main()
' 定义连接字符串,并赋值
Dim connectionString As String = "Data Source=(local);Initial Catalog=Northwind;" & "Integrated Security=true"
' 提供了插叙字符串
Dim queryString As String ="SELECT ProductID, UnitPrice, ProductName from dbo.Products " & "WHERE UnitPrice > @pricePoint " & "ORDER BY UnitPrice DESC;"
Dim paramValue As Integer = 5
' 在Using块中创建和打开连接,确保所有的资源在使用完毕后能够关闭并释放
Using connection As New SqlConnection(connectionString)
' 创建连接和属性对象
Dim command As New SqlCommand(queryString, connection)
command.Parameters.AddWithValue("@pricePoint", paramValue)
' 在try/catch块中打开连接, 创建和执行数据阅览,把结构显示到控制台窗口
Try
connection.Open()
Dim dataReader As SqlDataReader = command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}" & vbTab & "{2}",dataReader(0), dataReader(1), dataReader(2))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Console.ReadLine()
End Using
End Sub
End Class
</span>
OleDb
创建一个 OleDbCommand以从 Products 表中选择行,并添加一个 OleDbParameter来将结果限制为其 UnitPrice 大于指定参数值的行。 OleDbConnection在 using 块内打开,这将确保在代码退出时会关闭和释放资源。 示例代码使用 OleDbDataReader 执行命令,并在控制台窗口中显示结果。
[plain]
<span style="font-family:SimSun;font-size:18px;">Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports System.Data.OleDb
Public Class Program
Public Shared Sub Main()
Dim connectionString As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\Data\Northwind.mdb;User Id=admin;Password=;"
' 提供了插叙字符串
Dim queryString As String = "SELECT ProductID, UnitPrice, ProductName from Products " & "WHERE UnitPrice > ? " & "ORDER BY UnitPrice DESC;"
' Specify the parameter value.
Dim paramValue As Integer = 5
'在Using块中创建和打开连接,确保所有的资源在使用完毕后能够关闭并释放
Using connection As New OleDbConnection(connectionString)
Dim command As New OleDbCommand(queryString, connection)
command.Parameters.AddWithValue("@pricePoint", paramValue)
Try
connection.Open()
Dim dataReader As OleDbDataReader = _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine( _
vbTab & "{0}" & vbTab & "{1}" & vbTab & "{2}", _
dataReader(0), dataReader(1), dataReader(2))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Console.ReadLine()
End Using
End Sub
End Class