# C\#

***

* #### 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`:**

<figure><img src="https://2388471899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT7EGcEJYcU0fHj1mL1yx%2Fuploads%2FHiulZfKtXgWM4bhHNcP0%2Fimage.png?alt=media&#x26;token=185f9027-e1bd-49c6-a26a-98597107dba7" alt=""><figcaption><p>En este bloque, debes reemplazar los valores de <code>server</code>, <code>database</code>, <code>uid</code> (usuario) y <code>pwd</code> (contraseña) con los valores correspondientes a tu base de datos.</p></figcaption></figure>

***

#### 2. **Agregar las Referencias Necesarias**

* `System.comfiguration` &#x20;

<figure><img src="https://2388471899-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT7EGcEJYcU0fHj1mL1yx%2Fuploads%2FFA8yM2vIGpwCNgvMu3xz%2Fimage.png?alt=media&#x26;token=1290a813-103e-4872-94df-99cc99bf6c55" alt=""><figcaption></figcaption></figure>

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.

***
