C#

Para conectar SQL Server a C# en una aplicación .NET, el proceso se realiza en varios pasos. A continuación, te explico cómo hacerlo y te doy la estructura completa de los archivos necesarios:


  • 1. Configurar la Cadena de Conexión en el archivo App.config o Web.config

    En primer lugar, debes agregar la cadena de conexión a la base de datos en el archivo App.config o Web.config de tu proyecto.

    Ejemplo en App.config:

En este bloque, debes reemplazar los valores de server, database, uid (usuario) y pwd (contraseña) con los valores correspondientes a tu base de datos.

2. Agregar las Referencias Necesarias

  • System.comfiguration

Luego, debes agregar las referencias necesarias en tu código. Esto se hace en la parte superior de tu archivo de código (Form1.cs o similar):

using System.Configuration;
using System.Data.SqlClient;
  • System.Configuration: Para acceder a la cadena de conexión configurada en el archivo App.config o Web.config.

  • System.Data.SqlClient: Para interactuar con la base de datos SQL Server.


3. Configurar el Form1_Load para Cargar los Datos en el DataGridView

El siguiente paso es cargar los datos desde SQL Server a un DataGridView en la interfaz gráfica de usuario (GUI). Aquí te muestro cómo hacerlo en el evento Form1_Load:

private void Form1_Load(object sender, EventArgs e)
{
    SqlConnection cnn = null;
    try
    {
        // Establecer la conexión a la base de datos
        cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNX"].ConnectionString);

        // Crear el comando SQL
        SqlCommand cmd = new SqlCommand("SELECT IdProveedor as CODIGO, " +
                                       "Nombre as PROVEEDOR, Representante as CONTACTO, " +
                                       "Dirección as DIRECCION, Ciudad as CIUDAD FROM PROVEEDOR", cnn);

        // Usar SqlDataAdapter para llenar los datos en el DataTable
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataTable tabla = new DataTable();
        sda.Fill(tabla);

        // Asignar los datos al DataGridView
        dataGridView.DataSource = tabla;
    }
    catch (Exception ex)
    {
        // Mostrar error en caso de problemas con la conexión o la consulta
        MessageBox.Show("Error al conectar o ejecutar la consulta: " + ex.Message);
    }
    finally
    {
        // Asegurarse de cerrar la conexión
        if (cnn != null && cnn.State == ConnectionState.Open)
        {
            cnn.Close();
        }
    }
}

Crear el Procedimiento Almacenado en SQL Server

Primero, creas el procedimiento almacenado en SQL Server. Este procedimiento contendrá la consulta que deseas ejecutar. Aquí está el ejemplo de cómo crear el procedimiento almacenado pr_ListaProveedores:

  • La consulta:

CREATE PROCEDURE pr_ListaProveedores
AS
BEGIN
    SELECT IdProveedor AS CODIGO,
           Nombre AS PROVEEDOR,
           Representante AS CONTACTO,
           Direccion AS DIRECCION,
           Ciudad AS CIUDAD
    FROM PROVEEDOR;
END;

EXEC pr_ListaProveedores;

Ejecutar el Procedimiento Almacenado en C#

Ahora, en tu código C#, debes modificar la parte donde ejecutas la consulta para llamar al procedimiento almacenado en lugar de escribir la consulta directamente. Aquí está cómo hacerlo:

private void Form1_Load(object sender, EventArgs e)
{
    // Llamamos a la conexión al servidor y BD
    SqlConnection cnn = new SqlConnection(
        ConfigurationManager.ConnectionStrings["CNX"].ConnectionString);

    // Creamos el comando para ejecutar el procedimiento almacenado
    SqlCommand cmd = new SqlCommand("pr_ListaProveedores", cnn);
    cmd.CommandType = CommandType.StoredProcedure; // Especificamos que es un procedimiento almacenado

    // Ejecutamos la consulta que se ingresó en el cmd
    SqlDataAdapter sda = new SqlDataAdapter(cmd);

    // Creamos una tabla para cargar los datos
    DataTable tabla = new DataTable();

    // Cargamos los datos
    sda.Fill(tabla);

    // Asignamos la tabla como fuente de datos del DataGridView
    dataGridView.DataSource = tabla;
}

Explicación del Código

  • SqlCommand cmd = new SqlCommand("pr_ListaProveedores", cnn);: Este comando se encarga de ejecutar el procedimiento almacenado pr_ListaProveedores.

  • cmd.CommandType = CommandType.StoredProcedure;: Especifica que el comando que estamos ejecutando es un procedimiento almacenado.

  • SqlDataAdapter sda = new SqlDataAdapter(cmd);: Ejecuta el procedimiento y llena el DataTable con los datos obtenidos.

  • sda.Fill(tabla);: Llena el DataTable con los datos devueltos por el procedimiento.

  • dataGridView.DataSource = tabla;: Asigna el DataTable como la fuente de datos del DataGridView para que se muestren los resultados en la interfaz gráfica.


Last updated