Ejemplos de código de ADO.NET
Actualización: November 2007
Los listados de código de este tema muestran cómo recuperar datos de una base de datos utilizando las tecnologías ADO.NET siguientes:
Proveedores de datos de ADO.NET:
.NET Framework Data Provider for SQL Server (System.Data.SqlClient)
.NET Framework Data Provider for OLE DB (System.Data.OleDb)
.NET Framework Data Provider for ODBC (System.Data.Odbc)
.NET Framework Data Provider for Oracle (System.Data.OracleClient)
ADO.NET Entity Framework:
LINQ to Entities
Typed ObjectQuery
EntityClient data provider (System.Data.EntityClient)
LINQ to SQL
Ejemplos del proveedor de datos de ADO.NET
En los listados de código siguientes se muestra cómo recuperar datos de una base de datos usando proveedores de datos de ADO.NET. Los datos se devuelven en DataReader. Para obtener más información, vea Recuperar datos mediante DataReader (ADO.NET).
SqlClient
En el código de este ejemplo se asume que puede conectarse a la base de datos de ejemplo Northwind en Microsoft SQL Server 7.0 o en una versión posterior. El código crea SqlCommand para seleccionar filas de la tabla Products, que añade SqlParameter para limitar los resultados a las filas con un UnitPrice mayor que el valor de parámetro especificado, en este caso 5. SqlConnection se abre dentro de un bloque using, que garantiza que los recursos se cierran y se eliminan cuando termina la ejecución del código. El código ejecuta el comando utilizando SqlDataReader y muestra los resultados en la ventana de la consola.
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 = GetConnectionString()
Dim queryString As String = _
"SELECT CategoryID, CategoryName FROM dbo.Categories;"
Using connection As New SqlConnection(connectionString)
Dim command As SqlCommand = connection.CreateCommand()
command.CommandText = queryString
Try
connection.Open()
Dim dataReader As SqlDataReader = _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
dataReader(0), dataReader(1))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
Private Shared Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
Return "Data Source=(local);Initial Catalog=Northwind;" _
& "Integrated Security=SSPI;"
End Function
End Class
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
string queryString =
"SELECT CategoryID, CategoryName FROM dbo.Categories;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}",
reader[0], reader[1]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
}
}
[Top]
OleDb
En el código de este ejemplo se asume que puede conectarse a la base de datos de ejemplo Northwind de Microsoft Access. El código crea OleDbCommand para seleccionar filas de la tabla Products, que añade OleDbParameter para limitar los resultados a filas con un UnitPrice mayor que el valor de parámetro especificado, en este caso 5. OleDbConnection se abre dentro de un bloque using, que garantiza que los recursos se cierran y se eliminan cuando termina la ejecución del código. El código ejecuta el comando utilizando OleDbDataReader y muestra los resultados en la ventana de la consola.
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 = GetConnectionString()
Dim queryString As String = _
"SELECT CategoryID, CategoryName FROM Categories;"
Using connection As New OleDbConnection(connectionString)
Dim command As OleDbCommand = connection.CreateCommand()
command.CommandText = queryString
Try
connection.Open()
Dim dataReader As OleDbDataReader = _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
dataReader(0), dataReader(1))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
Private Shared Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
' Assumes Northwind.mdb is located in c:\Data folder.
Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& "c:\Data\Northwind.mdb;User Id=admin;Password=;"
End Function
End Class
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
string queryString =
"SELECT CategoryID, CategoryName FROM Categories;";
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
OleDbCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}",
reader[0], reader[1]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
// Assumes Northwind.mdb is located in the c:\Data folder.
return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ "c:\\Data\\Northwind.mdb;User Id=admin;Password=;";
}
}
[Top]
Odbc
En el código de este ejemplo se asume que puede conectarse a la base de datos de ejemplo Northwind de Microsoft Access. El código crea OdbcCommand para seleccionar filas de la tabla Products, que añade OdbcParameter para limitar los resultados a filas con un UnitPrice mayor que el valor de parámetro especificado, en este caso 5. OdbcConnection se abre dentro de un bloque using, que garantiza que los recursos se cierran y se eliminan cuando termina la ejecución del código. El código ejecuta el comando utilizando OdbcDataReader y muestra los resultados en la ventana de la consola.
Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports System.Data.Odbc
Public Class Program
Public Shared Sub Main()
Dim connectionString As String = GetConnectionString()
Dim queryString As String = _
"SELECT CategoryID, CategoryName FROM Categories;"
Using connection As New OdbcConnection(connectionString)
Dim command As OdbcCommand = connection.CreateCommand()
command.CommandText = queryString
Try
connection.Open()
Dim dataReader As OdbcDataReader = _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
dataReader(0), dataReader(1))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
Private Shared Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
' Assumes Northwind.mdb is located in c:\Data folder.
Return "Driver={Microsoft Access Driver (*.mdb)};" _
& "Dbq=c:\Data\Northwind.mdb;Uid=Admin;Pwd=;"
End Function
End Class
using System;
using System.Data;
using System.Data.Odbc;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
string queryString =
"SELECT CategoryID, CategoryName FROM Categories;";
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
OdbcCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
connection.Open();
OdbcDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}",
reader[0], reader[1]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
// Assumes Northwind.mdb is located in the c:\Data folder.
return "Driver={Microsoft Access Driver (*.mdb)};"
+ "Dbq=c:\\Data\\Northwind.mdb;Uid=Admin;Pwd=;";
}
}
[Top]
OracleClient
En el código de este ejemplo se presupone una conexión a DEMO.CUSTOMER en un servidor Oracle. También debe agregarse una referencia a System.Data.OracleClient.dll. El código devuelve los datos en OracleDataReader.
Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports System.Data.OracleClient
Public Class Program
Public Shared Sub Main()
Dim connectionString As String = GetConnectionString()
Dim queryString As String = _
"SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER"
Using connection As New OracleConnection(connectionString)
Dim command As OracleCommand = connection.CreateCommand()
command.CommandText = queryString
Try
connection.Open()
Dim dataReader As OracleDataReader = _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
dataReader(0), dataReader(1))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
Private Shared Function GetConnectionString() As String
' To avoid storing the connection string in your code,
' you can retrieve it from a configuration file.
Return "Data Source=ThisOracleServer;Integrated Security=yes;"
End Function
End Class
using System;
using System.Data;
using System.Data.OracleClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
string queryString =
"SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER";
using (OracleConnection connection =
new OracleConnection(connectionString))
{
OracleCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
connection.Open();
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}",
reader[0], reader[1]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
// Assumes Northwind.mdb is located in the c:\Data folder.
return "Data Source=ThisOracleServer;Integrated Security=yes;";
}
}
[Top]
Ejemplos de Entity Framework
En los listados de código siguientes se muestra cómo recuperar los datos de un origen de datos consultando las entidades de un Entity Data Model (EDM). En estos ejemplos se usa el modelo Northwind. Para obtener más información, vea Introducing the Entity Framework.
LINQ to Entities
El código de este ejemplo usa una consulta LINQ para devolver los datos como objetos Categories, que se proyectan como un tipo anónimo que contiene solo las propiedades CategoryID y CategoryName. Para obtener más información, vea LINQ to Entities Overview.
[Top]
ObjectQuery con establecimiento de tipos
En el código de este ejemplo se utiliza ObjectQuery<T> para devolver los datos como objetos Categories. Para obtener más información, vea Object Queries (Entity Framework).
[Top]
EntityClient
El código de este ejemplo usa EntityCommand para ejecutar una consulta Entity SQL. Esta consulta devuelve una lista de registros que representan instancias del tipo de entidad Categories. Se usa EntityDataReader para obtener acceso a los registros de datos del conjunto de resultados. Para obtener más información, vea EntityClient Provider for Entity Framework.
[Top]
LINQ to SQL
El código de este ejemplo usa una consulta LINQ para devolver los datos como objetos Categories, que se proyectan como un tipo anónimo que contiene solo las propiedades CategoryID y CategoryName. Este ejemplo se basa en el contexto de datos Northwind. Para obtener más información, vea Introducción (LINQ to SQL).
[Top]
Vea también
Otros recursos
Información general sobre ADO.NET
Recuperación y modificación de datos en ADO.NET
Crear aplicaciones de datos cliente
Querying an Entity Data Model (Entity Framework Tasks)
How to: Execute a Query that Returns an Anonymous Type (Entity Framework)