Llenar un DataGridView a partir de un SP (procedimiento almacenado) de una base de datos [Versión C#]

Problema: Me gustó la entrada anterior que explicaba cómo llenar un grid, pero ahora lo necesito en C#.
Solución: El nuevo ejemplo en C#

Para hacerlo un poco más real, ésta vez utilicé una base de datos existente y que Microsoft lo suele regalar como ejemplo.
La base de datos es pubs y el SP que escogí para este ejemplo es byroyalty.

Creé un formulario llamado Form1, el cual contiene un DataGridView llamado DataGridView1.

Luego, se escribe el procedimiento para llenar el grid.

private void Llenar_DataGridView()
{
    //Los argumentos de conexion a la base de datos
    string args="Data source=LAPTOP; Initial catalog=pubs; Integrated Security=SSPI";
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = args;

    try
    {
        //Indico el SP que voy a utilizar
        SqlCommand command = new SqlCommand("byroyalty", conn);
        command.CommandType = CommandType.StoredProcedure;
               
        SqlDataAdapter adapter = new SqlDataAdapter(command);

        //Envió los parámetros que necesito
        SqlParameter param = new SqlParameter("@percentage", SqlDbType.Int);
        param.Value = 100;
        command.Parameters.Add(param);

        DataTable dt = new DataTable();

        conn.Open();

        //Aquí ejecuto el SP y lo lleno en el DataTable
        adapter.Fill(dt);

        //Enlazo mis datos obtenidos en el DataTable con el grid
        dataGridView1.DataSource = dt;

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Este procedimiento lo llamo desde el load de la aplicación.
private void Form1_Load(object sender, EventArgs e)
{
    Llenar_DataGridView();
}

Listo, con esto queda explicado el mismo ejemplo que el anterior.

Si desean un video tutorial paso a paso, pueden utilizar el siguiente enlace.


Saludos a todos.