Recibe como parámetros:
public static void LoadCombo(DataTable dt, bool elementoVacio, string[] KeyValue, DropDownList dp) {
Limpiamos el DropDownList de posibles datos anteriores.dp.Items.Clear();
Asignamos el dataset al DropDownListdp.DataSource = dt;
Asignamos los elementos value y textodp.DataTextField = KeyValue[1];
dp.DataValueField = KeyValue[0];
dp.DataBind();
if (!elementoVacio) {
dp.Items.Add(new ListItem ("Seleccionar una opción", "0"));
dp.SelectedValue = "0";
}
public static void LoadListBox(DataTable dt, string[] KeyValue, ListBox lbx) {
lbx.Items.Clear();
lbx.DataSource = dt;
lbx.DataTextField = KeyValue[1];
lbx.DataValueField = KeyValue[0];
lbx.DataBind();
}
Creamos una stored procedure en la base de datos pubs:
ALTER PROCEDURE llenarCombos
AS
BEGIN
SET NOCOUNT ON;
-- Listado de autores
Select au_id, au_lname From authors Order by au_lname
-- Listado de trabajos
Select job_id, job_desc From jobs order by job_desc
-- Listado de titulos
Select title_id, title From titles order by title
-- Listado almacenes
Select stor_id, stor_name From stores order by stor_name
END
GO
Conectamos con la base de datos y ejecutamos la stored procedure:
MSSQL.Connection("");
DataSet ds = MSSQL.ExecuteDataset(CommandType.StoredProcedure, "llenarCombos");
MSSQL.Close();
Y rellenamos los DropDownList y ListBox
//Llenamos los combos con los datos del stored procedure
string[] ValoresCombo = new string[2] {"au_id", "au_lname"};
ComboGenerico.LoadCombo(ds.Tables[0], false, ValoresCombo, dp1);
ValoresCombo = new string[2] { "job_id", "job_desc" };
ComboGenerico.LoadCombo(ds.Tables[1], true, ValoresCombo, dp2);
ValoresCombo = new string[2] { "title_id", "title" };
ComboGenerico.LoadCombo(ds.Tables[2], false, ValoresCombo, dp3);
ValoresCombo = new string[2] { "stor_id", "stor_name" };
ComboGenerico.LoadListBox(ds.Tables[3], ValoresCombo, lb1);
Enlaces relacionadas:
Código de ejemplo
Y esto es todo!!!
Saludos
Alex