Compartir a través de


Conectarse a datos en Información general de Visual Studio

Actualización: noviembre 2007

Visual Studio proporciona herramientas para conectar la aplicación a datos de muchos orígenes diferentes, como bases de datos, servicios Web y objetos. Si se utilizan herramientas de diseño de datos en Visual Studio, a menudo no será necesario crear de forma explícita un objeto de conexión para el formulario o componente. El objeto de conexión se crea normalmente como resultado de la finalización de uno de los asistentes de datos o al arrastrar objetos de datos al formulario. Para conectar la aplicación a los datos de una base de datos, servicio Web u objeto, ejecute el Asistente para la configuración de orígenes de datos seleccionando Agregar nuevo origen de datos en la Ventana Orígenes de datos.

El diagrama siguiente muestra el flujo estándar de operaciones al conectarse a datos ejecutando una consulta TableAdapter para recopilar y mostrar datos en un formulario de una aplicación para Windows.

En algunas situaciones, es conveniente crear un objeto de conexión sin ayuda de ninguna herramienta de diseño de datos. Para obtener información sobre cómo crear conexiones mediante programación, vea Conectar con un origen de datos (ADO.NET).

Nota:

Para obtener información sobre cómo conectar aplicaciones Web a datos, vea Obtener acceso a datos con ASP.NET.

Crear conexiones

Al utilizar Visual Studio, las conexiones se configuran mediante el Agregar/Modificar conexión (Cuadro de diálogo, General). El cuadro de diálogo Agregar conexión aparece cuando se editan o crean conexiones dentro de uno de los asistentes de datos o del Explorador de servidores o Explorador de base de datos, o cuando se editan propiedades de conexión en la ventana Propiedades.

Las conexiones de datos se configuran en forma automática cuando se lleva a cabo una de las acciones siguientes:

Acción

Descripción

Ejecutar el Asistente para la configuración de orígenes de datos.

Las conexiones se configuran cuando se elige la ruta de acceso a la base de datos en el Asistente para configuración de orígenes de datos. Para obtener más información, vea Cómo: Conectarse a los datos de una base de datos.

Ejecutar el Asistente para la configuración de TableAdapter.

Las conexiones se crean dentro del Asistente para la configuración de TableAdapter. Para obtener más información, vea Cómo: Crear TableAdapters.

Ejecutar el Asistente para la configuración de consultas de TableAdapter.

Las conexiones se crean dentro del Asistente para la configuración de consultas de TableAdapter. Para obtener más información, vea Cómo: Crear consultas de TableAdapter.

Arrastrar elementos de la Ventana Orígenes de datos a un formulario o al Diseñador de componentes.

Los objetos de conexión se crean al arrastrar elementos desde la ventana Orígenes de datos hasta el Diseñador de Windows Forms o el Diseñador de componentes. Para obtener más información, vea Mostrar datos en formularios en aplicaciones para Windows.

Agregar nuevas conexiones de datos al Explorador de servidores o Explorador de base de datos.

Las conexiones de datos en el Explorador de servidores o Explorador de base de datos aparecen en la lista de conexiones disponibles dentro de los asistentes de datos. Para obtener más información, vea Cómo: Agregar nuevas conexiones de datos al Explorador de servidores/Explorador de bases de datos.

Cadenas de conexión

Todos los objetos de conexión exponen más o menos los mismos miembros. Sin embargo, los miembros específicos disponibles con un objeto OleDbConnection dado dependen del origen de datos al que se conecta; no todos los orígenes de datos admiten todos los miembros de la clase OleDbConnection.

La propiedad principal asociada a un objeto de conexión es la propiedad ConnectionString. Esta propiedad consta de una cadena con pares atributo/valor que proporciona la información necesaria de inicio de sesión en un servidor de bases de datos y apunta a una base de datos concreta. Una propiedad ConnectionString típica tendría el siguiente aspecto:

Provider=SQLOLEDB.1;Data Source=MySQLServer;Initial Catalog=NORTHWIND;Integrated Security=SSPI

Esta cadena de conexión concreta especifica que la conexión debería usar la seguridad integrada de Windows. Una cadena de conexión también puede incluir un nombre y una contraseña de usuario pero esto no es recomendable, ya que estos atributos se compilan en la aplicación y, por lo tanto, suponen una posible infracción de seguridad.

Nota de seguridad:

Almacenar los detalles de la cadena de conexión (como la contraseña) puede afectar la seguridad de su aplicación. El uso de la Seguridad integrada de Windows es un modo más seguro de controlar el acceso a una base de datos. Para obtener más información, vea Proteger la información de conexión (ADO.NET).

Los pares atributo/valor que OLE DB utiliza con más frecuencia están representados también, por separado, por medio de propiedades individuales tales como DataSource y Database. Cuando trabaje con un objeto de conexión, puede establecer la propiedad ConnectionString como una sola cadena o establecer propiedades individuales de conexión. (Si el origen de datos necesita valores de cadena de conexión que no estén representados por propiedades individuales, deberá establecer la propiedad ConnectionString).

Guardar y recuperar cadenas de conexión

Las cadenas de conexión se pueden almacenar dentro de la aplicación compilada o en el archivo de configuración de la aplicación. Para obtener más información, vea Cómo: Guardar una cadena de conexión.

Abrir y cerrar conexiones

Los dos principales métodos para las conexiones son Open y Close. El método Open utiliza la información de la propiedad ConnectionString para ponerse en contacto con el origen de datos y establecer una conexión abierta. El método Close cierra la conexión. Es esencial cerrar las conexiones, porque la mayoría de los orígenes de datos admiten sólo un número limitado de conexiones abiertas y las conexiones abiertas consumen valiosos recursos del sistema.

Si trabaja con TableAdapters, DataAdapters o DataCommands, no tendrá que abrir ni cerrar conexiones explícitamente. Cuando se llama a un método de estos objetos (por ejemplo, a los métodos Fill o Update de un adaptador), el método comprueba si ya está abierta la conexión. Si no es así, el adaptador abre la conexión, ejecuta su lógica y cierra de nuevo la conexión.

Los métodos como Fill sólo abren y cierran automáticamente la conexión si no está ya abierta. Si la conexión está abierta, los métodos la utilizan pero no la cierran. Esto le proporciona la flexibilidad necesaria para abrir y cerrar comandos de datos. Puede hacer esto si tiene múltiples adaptadores que compartan una conexión. En este caso, hacer que cada adaptador abra y cierre la conexión cuando se llame a su método Fill no resulta eficiente. En lugar de hacerlo así, puede abrir la conexión, llamar al método Fill de cada adaptador y, cuando termine, cerrar la conexión.

Agrupar conexiones

A menudo, las aplicaciones tienen diferentes usuarios ejecutando el mismo tipo de acceso a la base de datos. Por ejemplo, muchos usuarios podrían consultar la misma base de datos para obtener los mismos datos. En esos casos, el rendimiento de la aplicación puede mejorar si se hace que la aplicación comparta o agrupe las conexiones con el origen de datos. La sobrecarga que supone hacer que cada usuario abra y cierre una conexión separada podría tener, de lo contrario, un efecto adverso sobre el rendimiento de la aplicación.

Si utiliza la clase OleDbConnection, OdbcConnection o OracleConnection, el proveedor controlará automáticamente la agrupación de conexiones, así que no tendrá que preocuparse de administrarla personalmente.

Si utiliza la clase SqlConnection, la agrupación de conexiones se administra de forma implícita, pero también dispone de opciones que le permiten administrar la agrupación personalmente. Para obtener más información, vea Agrupación de conexiones en SQL Server (ADO.NET).

Transacciones

Los objetos de conexión admiten transacciones con un método BeginTransaction que crea un objeto de transacción (por ejemplo, un objeto SqlTransaction). El objeto de transacción, a su vez, admite métodos que permiten confirmar o deshacer las transacciones.

Las transacciones se administran en el código. Para obtener más información, vea Transacciones y simultaneidad (ADO.NET).

La versión 2.0 de .NET Framework incluye un nuevo marco de transacciones, accesible a través del espacio de nombres System.Transactions. Este marco de trabajo expone las transacciones de tal manera que está totalmente integrado en .NET Framework, incluso en ADO.NET. Para obtener más información, vea Integración de System.Transactions con SQL Server (ADO.NET).

Información de conexión y seguridad

Dado que la apertura de una conexión implica obtener acceso a un recurso importante (una base de datos) a menudo surgen problemas de seguridad al configurar una conexión y trabajar con ella.

El modo de asegurar la aplicación y su acceso al origen de datos depende de la arquitectura del sistema. En una aplicación basada en Web, por ejemplo, los usuarios suelen obtener un acceso anónimo a Servicios de Internet Information Server (IIS) y, por lo tanto, no proporcionan credenciales de seguridad. En este caso, la aplicación mantiene su propia información de inicio de sesión y la utiliza (en lugar de cualquier información específica del usuario) para abrir la conexión y tener acceso a la base de datos.

Nota de seguridad:

Almacenar los detalles de la cadena de conexión (como la contraseña) puede afectar la seguridad de su aplicación. El uso de la Seguridad integrada de Windows es un modo más seguro de controlar el acceso a una base de datos. Para obtener más información, vea Proteger la información de conexión (ADO.NET).

En aplicaciones de intranet o de varios niveles, puede aprovechar la opción de seguridad integrada que proporcionan Windows, IIS y SQL Server. En este modelo, las credenciales de autenticación de un usuario para la red local se utilizan también para el acceso a los recursos de la base de datos y no se utiliza ninguna contraseña o nombre de usuario explícito en la cadena de conexión. (Habitualmente, los permisos se establecen en el equipo servidor de la base de datos por medio de grupos, de modo que no es necesario establecer permisos individuales para cada usuario que pueda tener acceso a la base de datos). En este modelo, no es necesario almacenar ninguna información de inicio de sesión para la conexión ni es necesario dar más pasos para proteger la información de la cadena de conexión.

Para obtener más información sobre seguridad, vea las páginas siguientes:

Conexiones en tiempo de diseño en el Explorador de servidores o Explorador de base de datos

El Explorador de servidores o Explorador de base de datos proporciona un medio para crear conexiones en tiempo de diseño con orígenes de datos. Permite examinar los orígenes de datos disponibles, mostrar información acerca de las tablas, columnas y otros elementos que contienen, y modificar y crear elementos de la base de datos.

Su aplicación no utiliza en forma directa las conexiones disponibles en el Explorador de servidores o Explorador de base de datos. Visual Studio utiliza estas conexiones para trabajar con la base de datos en tiempo de diseño. Para obtener más información, vea Visual Database Tools.

Por ejemplo, en tiempo de diseño se puede utilizar el Explorador de servidores o Explorador de base de datos para crear una conexión a una base de datos. Más tarde, al diseñar un formulario, puede examinar la base de datos, seleccionar columnas de una tabla y arrastrarlas hacia el Dataset Designer. Esto crea un TableAdapter en su conjunto de datos. También crea un nuevo objeto de conexión, el cual forma parte del TableAdapter recientemente creado.

La información sobre las conexiones en tiempo de diseño se almacena en el equipo local, independientemente del proyecto o solución. Por lo tanto, una vez establecida una conexión en tiempo de diseño mientras se trabaja en una aplicación, aparecerá en el Explorador de servidores o Explorador de base de datos cada vez que trabaje en Visual Studio (siempre que esté disponible el servidor al que apunta la conexión). Para obtener más información sobre cómo utilizar el Explorador de servidores o Explorador de base de datos y crear conexiones en tiempo de diseño, vea Cómo: Agregar nuevas conexiones de datos al Explorador de servidores/Explorador de bases de datos.

Vea también

Tareas

Cómo: Conectarse a los datos de una base de datos

Tutorial: Conexión a los datos de una base de datos

Otros recursos

Conectarse a datos en Visual Studio

Obtener acceso a datos con ASP.NET

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Mostrar datos en formularios en aplicaciones para Windows

Modificar datos en la aplicación

Validar datos

Guardar datos