Tutorial de Conexión a Base de Datos en C#: Conectar a SQL Server y Realizar Operaciones CRUD
Trabajar con una base de datos es una habilidad fundamental para cualquier desarrollador C#. Esta guía muestra cómo conectar a Microsoft SQL Server, ejecutar consultas y enlazar datos a controles de Windows Forms.
Fundamentos de Conectividad a Base de Datos
Ya sea usando Oracle, MySQL, MongoDB o Microsoft SQL Server, el proceso de conectar, consultar, insertar, actualizar y eliminar datos permanece consistente. En este tutorial nos centraremos en SQL Server, usando la edición gratuita SQL Server Express.
- Cadena de conexión – contiene nombre del servidor, nombre de base de datos y credenciales.
- Credenciales – usuario y contraseña con los privilegios necesarios.
- Parámetros opcionales – ej. timeout de conexión, encriptación.
Comandos SQL en C#
La clase SqlCommand envía sentencias SQL a la base de datos. Use ExecuteReader para consultas SELECT y ExecuteNonQuery para INSERT, UPDATE y DELETE.
Conectando C# a SQL Server
A continuación un ejemplo mínimo de Windows Forms que establece conexión a una base de datos llamada Demodb usando credenciales sa / demo123. El evento click del botón abre la conexión, muestra un mensaje y la cierra.
Paso 1: Crear un proyecto Windows Forms en Visual Studio. Paso 2: Añadir un Botón llamado btnConnect con el texto "Conectar". Paso 3: Añadir el siguiente manejador de eventos:
using System; using System.Data.SqlClient; using System.Windows.Forms; namespace DemoApplication1 { public partial class Form1 : Form { public Form1() => InitializeComponent(); private void btnConnect_Click(object sender, EventArgs e) { string connectionString = "Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); MessageBox.Show("¡Conexión Abierta!"); conn.Close(); } } } } Ejecute la aplicación, haga clic en el botón y verá un mensaje de confirmación.
Leyendo Datos con SqlDataReader
Asuma una tabla demotb existe con columnas TutorialID y TutorialName:
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.NET |
Use el siguiente código para obtener y mostrar las filas:
string sql = "SELECT TutorialID, TutorialName FROM demotb"; using (SqlCommand cmd = new SqlCommand(sql, conn)) using (SqlDataReader reader = cmd.ExecuteReader()) { string output = ""; while (reader.Read()) { output += $"ID: {reader[\"TutorialID\"]}, Name: {reader[\"TutorialName\"]}\n"; } MessageBox.Show(output); } Insertando un Registro
Para añadir un nuevo tutorial (ID 3, Nombre VB.NET) ejecute:
string insertSql = "INSERT INTO demotb (TutorialID, TutorialName) VALUES (3, 'VB.NET')"; using (SqlCommand cmd = new SqlCommand(insertSql, conn)) { cmd.ExecuteNonQuery(); } Actualizando un Registro
Actualice el tutorial con ID 3 a "VB.NET Complete":
string updateSql = "UPDATE demotb SET TutorialName = 'VB.NET Complete' WHERE TutorialID = 3"; using (SqlCommand cmd = new SqlCommand(updateSql, conn)) { cmd.ExecuteNonQuery(); } Eliminando un Registro
Elimine el registro con ID 3:
string deleteSql = "DELETE FROM demotb WHERE TutorialID = 3"; using (SqlCommand cmd = new SqlCommand(deleteSql, conn)) { cmd.ExecuteNonQuery(); } Enlazando Controles a Datos
Windows Forms ofrece enlace de datos, eliminando la necesidad de actualizaciones manuales de UI. Arrastre dos controles TextBox al formulario, nómbrelos txtID y txtName, y añada un BindingNavigator.
Use el asistente de Origen de Datos para crear un origen de datos de proyecto para demotb. Luego:
- Seleccione
txtID, vaya a la ventana Propiedades, haga clic en DataBindings → Text y enlace ademotbBindingSource – TutorialID. - Repita para
txtNameconTutorialName. - Establezca la propiedad
BindingSourcedelBindingNavigatorademotbBindingSource.
Ejecute el formulario; los cuadros de texto muestran el primer registro y el navegador se mueve entre filas automáticamente.
Mostrando Datos con un DataGridView
Arrastre un DataGridView al formulario. En sus propiedades, establezca el DataSource a demotbBindingSource. La cuadrícula se poblará con todas las filas de la tabla.
Resumen
- Conectar a SQL Server usando
SqlConnectiony una cadena de conexión adecuada. - Ejecutar operaciones CRUD con
SqlCommandyExecuteNonQuery. - Leer datos con
SqlDataReadery procesar filas en un buclewhile. - Enlazar controles UI a un
BindingSourcepara visualización y navegación automática de datos. - Usar
DataGridViewpara presentar datos tabulares instantáneamente.
Lenguaje C
- Conectar sensor ultrasónico NXT de Lego Mindstorms directamente a Raspberry Pi
- Automatización de servidores: De macros de escritorio a plataformas FANG
- Mejorando las Cadenas de Suministro de EE. UU.: El Rol Estratégico de los Puertos Interiores
- Conecte su Haas CNC a PC o Portátil: Guía Paso a Paso
- Entendiendo servidores VPN ofuscados: cómo funcionan y por qué importan
- Despliegue de un servidor web con TLS en un ESP8266 de 3 $ en menos de 30 minutos
- Cadenas en C hechas fáciles: Declaración, entrada, salida y funciones de biblioteca
- Uso de realloc() en C: Sintaxis, mejores prácticas y ejemplo
- Dominando la función free() en C: Guía práctica y ejemplo
- Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
- Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos