Cómo conectarse a una base de datos y ejecutar un comando mediante ADO 2005 y Visual C# 2005 o mediante ADO.NET y Visual C# .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 306636 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E306636
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso se muestra cómo usar ADO 2005 o ADO.NET para conectarse a una base de datos y ejecutar un comando

Requisitos

En la lista siguiente se enumeran el hardware, el software, la infraestructura de red y los Service Pack recomendados que se necesitan:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 o Microsoft Visual Studio .NET
En el presente artículo se da por supuesto que está familiarizado con los temas siguientes:
  • Terminología de base de datos
  • Lenguaje de consulta estructurado (SQL)

Cómo ejecutar un comando

Los comandos se emiten con bases de datos para realizar acciones en almacenes de datos e incluir cualquier instrucción que se pueda emitir con una base de datos. Puede utilizar las clases OleDbCommand o SqlCommand para obtener un comando para su almacén de datos; OleDbCommand puede ser específica del almacén de datos. En este artículo se demuestran la clase SqlClient (para conectar con un equipo que ejecuta Microsoft SQL Server) y la clase OleDb (para cualquier base de datos que tenga un controlador OLE DB u ODBC disponible) dentro de ADO.NET. Sin embargo, el código generalmente es el mismo para ambas.

Con ADO, puede emitir comandos a través de los objetos Command, Connection o Recordset. En ADO.NET, sólo los objetos Command (SqlCommand u OleDbCommand) ejecutan comandos.

Para ejecutar un comando, siga estos pasos:
  1. Siga estos pasos para crear una nueva aplicación de consola en Microsoft Visual C# 2005 o en Microsoft Visual C# .NET:
    1. Inicie Microsoft Visual Studio 2005 o Microsoft Visual Studio .NET.
    2. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto.
    3. En el cuadro de diálogo Nuevo proyecto, haga clic en Proyectos de Visual C# en Tipos de proyecto y, después, haga clic en Aplicación de consola en Plantillas.

      Nota
      En Visual Studio 2005, haga clic en Visual C# bajo Tipos de proyecto en el cuadro de diálogo Nuevo proyecto y, a continuación, haga clic en Aplicación de consola bajo Plantillas.
  2. Asegúrese de que el proyecto contiene una referencia al espacio de nombres System.Data y, si no es así, agregue una.
  3. Utilice la instrucción using de los espacios de nombres System y System.Data para que no tenga que calificar las declaraciones de esos espacios de nombres más adelante en el código. También puede incluir System.Data.SqlClient o System.Data.OleDb, dependiendo de cuál use.
    using System; using System.Data; using System.Data.SqlClient;
    					
  4. Para poder crear una conexión a una base de datos, debe tener una cadena de conexión. Las cadenas de conexión contienen toda la información que necesita para establecer una conexión a bases de datos, incluido el nombre del servidor, el nombre de la base de datos, el identificador de usuario y la contraseña. Por ejemplo, la cadena de conexión siguiente señala a un equipo local que ejecuta SQL Server:

    Para las conexiones OleDb:

    Nota
    User ID <UID> debe contar con los permisos necesarios para realizar estas operaciones en la base de datos.
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    Para las conexiones de SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    Nota
    Si necesita más ayuda para determinar la cadena de conexión para su base de datos, busque "ConnectionString" en Microsoft Developer Network (MSDN) Library en:
    http://search.microsoft.com/?mkt=es-es
  5. Visual Studio crea una clase estática y un procedimiento Main() vacío. Declare una variable de cadena y almacene la cadena de conexión adecuada para su base de datos en este procedimiento.

    Nota
    User ID <UID> debe contar con los permisos necesarios para realizar estas operaciones en la base de datos.
    class Class1 { static void Main(string[] args) { string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)"; } }
    					
  6. Con esta cadena de conexión, cree un nuevo objeto OleDbConnection o SqlConnection y llame a su método Open para establecer una conexión a la base de datos:
    SqlConnection objConn = new SqlConnection(sConnectionString); objConn.Open();
    					
  7. Cree un objeto SqlCommand u OleDbCommand, y pase el comando que desee ejecutar y el objeto de conexión que creó en el paso anterior. El código de ejemplo siguiente pasa la instrucción INSERT:
    string sSQL = "INSERT INTO Employee " + "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')"; SqlCommand objCmd = new SqlCommand(sSQL,objConn);
    					
  8. Después de crear el objeto SqlCommand u OleDbCommand, puede llamar al método ExecuteNonQuery para ejecutar el comando que representa. ExecuteNonQuery está diseñado para los comandos que no devuelven ningún resultado (como las instrucciones DELETE, UPDATE e INSERT). Si la instrucción se ejecuta sin desencadenar una excepción (vea el código siguiente), el comando se ha ejecutado correctamente con la base de datos.
    objCmd.ExecuteNonQuery();
    					
  9. Guarde el proyecto. En el menú Depurar, haga clic en Iniciar para ejecutar el comando con la base de datos.

Cómo utilizar parámetros

Cuando ejecuta los comandos con una base de datos (como las instrucciones UPDATE, INSERT y DELETE, o llamadas a procedimientos almacenados), estos comandos suelen tener parámetros. Esto permite crear el comando una vez y ejecutarse varias veces con diferentes valores que se insertan en lugar de los parámetros. Examine la instrucción DELETE correspondiente a la instrucción INSERT que se utiliza en la sección anterior:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"
				
El nombre de parámetro ("@emp_id") de esta instrucción DELETE representa un parámetro que puede reemplazar con valores diferentes cada vez que ejecuta el comando.

Para utilizar parámetros con el comando, siga estos pasos:
  1. Cree un objeto OleDbConnection o SqlConnection, como hizo en la sección "Cómo ejecutar un comando".
  2. Reemplace los valores con marcadores de posición (por ejemplo, "@emp_id" o "@fname") para que el texto del comando utilice parámetros. Vea la instrucción DELETE antes de seguir estos pasos para obtener un ejemplo.
  3. Cree el objeto OleDbCommand o SqlCommand, y pase el objeto de conexión que creó en el primer paso y el texto del comando que contiene los marcadores de posición de los parámetros.
  4. Para cada parámetro, agregue un objeto de parámetro a la colección de parámetros del objeto del comando. Para cada parámetro debe especificar un nombre y un tipo de datos.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
    					
  5. Los procedimientos almacenados pueden tener parámetros que devuelvan valores y parámetros de salida. También debe establecer un valor para cada parámetro de entrada antes de poder ejecutar la consulta:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";
    					
  6. Ejecute la consulta como sigue:
    try { objCmd.ExecuteNonQuery(); } catch (System.Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Registro eliminado");
    					

Lista completa de código

Nota
Debe cambiar User ID =<UID> a los valores correctos antes de ejecutar este código. Asegúrese de que <UID> tiene los permisos apropiados para realizar esta operación en la base de datos.
using System; using System.Data; using System.Data.SqlClient;

    /// <summary> /// Descripción de resumen para Class1. /// </summary> class Class1 { static void Main(string[] args) { AddRecord(); RemoveRecord(); Pause(); }

	static void Pause() { Console.WriteLine("Presione Entrar para continuar...."); Console.ReadLine(); }

	static void AddRecord() { string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)"; SqlConnection objConn = new SqlConnection(sConnectionString); objConn.Open(); string sSQL = "INSERT INTO Employee " + "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')"; SqlCommand objCmd = new SqlCommand(sSQL,objConn); try { objCmd.ExecuteNonQuery(); } catch (System.Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Registro agregado"); }

	static void RemoveRecord() { string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)"; SqlConnection objConn = new SqlConnection(sConnectionString); objConn.Open(); string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"; SqlCommand objCmd = new SqlCommand(sSQL,objConn); objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9); objCmd.Parameters["@emp_id"].Value = "MSD12923F"; try { objCmd.ExecuteNonQuery(); } catch (System.Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Registro eliminado"); } } 
				

Referencias

Para obtener más información acerca de cómo utilizar ADO.NET, comandos de base de datos y procedimientos almacenados, visite los sitios Web de Microsoft siguientes:
Procedimientos almacenados de SQL Server 2000
http://msdn.microsoft.com/library/psdk/sql/cm_8_des_07_31vb.htm

"Diving into Data Access", una columna de MSDN Voices (en inglés)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndive/html/data08092001.asp

ADO.NET para el programador de ADO
http://www.microsoft.com/spanish/msdn/articulos/archivo/180501/voices/adonetdev.asp

Centro de desarrollo de MSDN Online .NET
http://www.microsoft.com/spanish/msdn/netframework/default.asp
Para obtener más información al respecto, consulte el libro siguiente:
Sharp, John y Jon Jagger. Microsoft Visual C# .NET Step by Step. Microsoft Press, 2001.
Para obtener más información al respecto, consulte el siguiente curso de Microsoft Training & Certification:
2389 Programming with ADO.NET
http://www.microsoft.com/learning/syllabi/en-us/2389Bfinal.mspx

Propiedades

Id. de artículo: 306636 - Última revisión: viernes, 17 de agosto de 2007 - Versión: 4.2
La información de este artículo se refiere a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Palabras clave: 
kbhowtomaster kbsqlclient kbsystemdata KB306636

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com