Cómo: Conectarse a una base de datos y ejecutar un comando mediante ADO.NET y Visual J# .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 322045 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo describe cómo utilizar ADO.NET para conectarse a una base de datos y ejecutar un comando (como UPDATE, INSERT o DELETE comando) utilizando un Visual J# .NET aplicación de consola.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft Visual J# .NET
En este artículo se supone que está familiarizado con los temas siguientes:
  • Terminología de base de datos
  • SQL

Cómo ejecutar un comando

Los comandos se emiten en bases de datos para realizar acciones en almacenes de datos e incluir cualquier instrucción que se puede emitir contra una base de datos. Puede utilizar las OleDbCommand o las clases de SqlCommand para obtener un comando en el almacén de datos y OleDbCommand puede ser especifico para el almacén de datos. Este artículo demuestra la clase SqlClient (para conectarse a un equipo que ejecuta Microsoft SQL Server) y la clase de OleDb (para cualquier base de datos que tiene un controlador OLE DB u ODBC disponible) dentro de ADO.NET. Sin embargo, el código generalmente es el mismo para ambos.

Con ADO, puede emitir comandos mediante el comando , la conexión o el objeto Recordset . En ADO.NET, sólo los objetos Command ( SqlCommand o OleDbCommand ) ejecutan comandos.

Para ejecutar un comando, siga estos pasos:
  1. Siga estos pasos para crear una nueva aplicación de consola en Visual J#. NET:
    1. Inicie Visual Studio NET..
    2. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
    3. En el cuadro de diálogo Nuevo proyecto , haga clic en Proyectos de Visual J# en Tipos de proyecto y, después, haga clic en Aplicación de consola en plantillas .
  2. Asegúrese de que el proyecto contiene una referencia al espacio de nombres System.Data y agregar una referencia si no existe.
  3. Utilice la instrucción Importar el System.Data.SqlClient y los espacios de nombres System.Data.OleDb , de modo que no tengan que calificar las declaraciones de esos espacios de nombres más adelante en el código.
    import System.Data.SqlClient.*;
    import System.Data.OleDb.*;
    import System.Data.*;
    					
  4. Antes de poder crear una conexión a una base de datos, debe tener una cadena de conexión. Las cadenas de conexión contienen todos la información que necesitan para establecer una conexión de base de datos, incluido el nombre del servidor, el nombre de la base de datos, el ID de usuario y la contraseña. Evite utilizar la cuenta SA. <username>Por ejemplo, la cadena de conexión siguiente señala a un equipo local que está ejecutando SQL Server con una cuenta <nombredeusuario> y un fuerte contraseña < contraseña >:

    Para OleDb conexiones:
    Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data Source=(local)
    						
    SqlClient para conexiones:
    User ID=<username>;Initial Catalog=pubs;Data Source=(local)
    						
    Nota : si necesita más ayuda determinar la cadena de conexión para la base de datos, busque "ConnectionString" en la biblioteca Microsoft Developer Network (MSDN) en el siguiente sitio Web de Microsoft:
    http://msdn.microsoft.com/en-us/support/default.aspx
  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:
    public static void main(String[] args)
    	{
    		// 
    		// TODO: Add code to start application here
    		// 
    		String sConnectionString = "User ID=<username>;Initial Catalog=pubs;Data Source=mysource1;Password=<strong password>";
    		
    	}
    					
  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. Crear un SqlCommand o un objeto OleDbCommand y pase el comando que desea ejecutar y el objeto de conexión que creó en el paso anterior. El código de ejemplo siguiente se pasa en 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 objeto OleDbCommand o SqlCommand , 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 DELETE, UPDATE y las instrucciones INSERT). Si la instrucción Execute se ejecuta sin iniciar una excepción (vea el código siguiente), el comando ha ejecutado correctamente en la base de datos.
    objCmd.ExecuteNonQuery();
    					
  9. Modifique la cadena de conexión según corresponda para su entorno y, a continuación, guarde el proyecto. En el menú Depurar , haga clic en iniciar para ejecutar el comando contra la base de datos.

Cómo utilizar parámetros

Cuando ejecuta comandos en una base de datos (como UPDATE, INSERT y DELETE instrucciones o llamadas a procedimientos almacenan), estos comandos están parametrizados con frecuencia. Esto permite que el comando se cree una vez y se pueda ejecutar varias veces con diferentes valores que se insertan en lugar de los parámetros. Considere 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 se ejecute 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 "How to Run a Command".
  2. Reemplace los valores por 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 estos pasos para obtener un ejemplo.
  3. Cree un 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 parámetro.
  4. Obtener colección de parámetro del objeto de comando:
    SqlParameterCollection ParamColl = objCmd.get_Parameters();
    					
  5. En 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 el tipo de datos.
    ParamColl.Add("@emp_id",SqlDbType.Char,9);
    					
  6. 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:
    ParamColl.get_Item("@emp_id").set_Value((System.String)"MSD12923F");
    					
  7. Ejecute la consulta como sigue:
    try 
    {
    	objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e) 
    {
    	Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");
    					

Lista de código completa

package ConsoleApplication1;

import System.Data.SqlClient.*;
import System.Data.OleDb.*;
import System.Data.SqlDbType;

//    Summary description for Class1.
public class Class1
{
	public Class1()
	{
		// 
		// TODO: Add constructor logic here.
		// 
	}

	public static void main(String[] args)
	{
		// 
		// TODO: Add code to start application here.
		// 
		AddRecord();
		RemoveRecord();
		Pause();
	}
	static void Pause()
	{
		System.Console.WriteLine("Press Enter To Continue....");
		System.Console.Read();
	}
	static void AddRecord()
	{
		try 
		{
		String sConnectionString = "User ID=<username>;Initial Catalog=pubs;Data Source=(local);Password=<strong password>";
		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);

			objCmd.ExecuteNonQuery();
		}
		catch(SqlException ex)
		{
		System.Console.WriteLine(ex.get_Message());
		}
		catch (System.Exception e) 
		{
			System.Console.WriteLine(e.get_Message());
		}
		System.Console.WriteLine("Record Added");
		//System.Console.Read();
	}
	static void RemoveRecord()
	{
		try 
		{
		String sConnectionString = "User ID=<username>;Initial Catalog=pubs;Data Source=(local);Password=<strong password>";
		SqlConnection objConn = new SqlConnection(sConnectionString);
		objConn.Open();
		String sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id";
		SqlCommand objCmd = new SqlCommand(sSQL,objConn);
		SqlParameterCollection ParamColl = objCmd.get_Parameters();
		ParamColl.Add("@emp_id", SqlDbType.Char,9);
		ParamColl.get_Item("@emp_id").set_Value((System.String)"MSD12923F");   

    

			objCmd.ExecuteNonQuery();
		}
		catch(SqlException ex)
		{
			System.Console.WriteLine(ex.get_Message());
		}
		catch (System.Exception e) 
		{
			System.Console.WriteLine(e.get_Message());
		}
		
		System.Console.WriteLine("Record Deleted");
		
	}
} 
				

Referencias

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

"Diving into Data Access" columna de MSDN Voices
http://msdn.microsoft.com/en-us/library/ms810282.aspx

Página principal de .NET de Visual J#
http://msdn.microsoft.com/en-us/vjsharp/default.aspx

MSDN Online .NET Developer Center
http://msdn.microsoft.com/net

Propiedades

Id. de artículo: 322045 - Última revisión: miércoles, 29 de octubre de 2003 - Versión: 5.5
La información de este artículo se refiere a:
  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual J# .NET 2003 Standard Edition
Palabras clave: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB322045 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 322045

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