Foros del Web » Programando para Internet » ASPX (.net) »

recuperar valores de checkboxlist

Estas en el tema de recuperar valores de checkboxlist en el foro de ASPX (.net) en Foros del Web. hola tengo un problema con un checkboxlits se supone que todos los valores que esten seleccionados deben ser ingresados la tabl de sql server pero ...
  #1 (permalink)  
Antiguo 02/07/2009, 19:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
recuperar valores de checkboxlist

hola tengo un problema con un checkboxlits se supone que todos los valores que esten seleccionados deben ser ingresados la tabl de sql server pero mi for reconoce el numero de casillas seleccionadas
e inserta esas veces enla tabla pero siempre con el primer valor que reconoce
protected void Button1_Click(object sender, EventArgs e)
alquie podria auxiliarme gracias
{

SqlConnection CONECTAR;
SqlCommand DATOS;
//string @ss;
CONECTAR = new SqlConnection("Data Source=NALLE\\SQLEXPRESS;Initial Catalog=planes_estrategicos;Integrated Security=True");

string deptoplan = "insert into plan_departamento(id_plan,id_depto) values(@id_plan,@ss)";

DATOS = new SqlCommand(deptoplan,CONECTAR);


DATOS.Parameters.Add(new SqlParameter("@id_plan", SqlDbType.Int));
DATOS.Parameters["@id_plan"].Value = planchek.SelectedItem.Value;


DATOS.Parameters.Add(new SqlParameter("@ss", SqlDbType.Int));
DATOS.Parameters["@ss"].Value = deptocheck.SelectedItem.Value;

//DATOS.Parameters.Add(new SqlParameter("@ss", SqlDbType.Int));
// DATOS.Parameters["@ss"].Value = etiqueta.Text;



String s="";
for (int i = 0; i<deptocheck.Items.Count; i++)
{
if (deptocheck.Items[i].Selected)
{
s = s + deptocheck.Items[i].Text;
s = s + "<br>";
DATOS.Connection.Open();
DATOS.ExecuteNonQuery();
DATOS.Connection.Close();

}
}
etiqueta.Text = s;

}
  #2 (permalink)  
Antiguo 02/07/2009, 20:06
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: recuperar valores de checkboxlist

Creo que existe un plural de esto planchek.SelectedItem que te devuelve una collection planchek.SelectedItems, si usas ese en un foreach tendras acceso a los diversos items seleccionados.

No e probado aún pero creo que es así.

Saludos,
  #3 (permalink)  
Antiguo 04/07/2009, 12:48
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: recuperar valores de checkboxlist

ya he probado con el foreach
pero solo me inserta un solo registro el primero que este seleccionada

esto es lo que tengo en mi boton
string strchklist="";
foreach (ListItem li in deptocheck.Items )
{
if (li.Selected )
{
strchklist += li.Text + " " ;
}
}
if (strchklist =="")
{
Response.Write ("No item Selected");
}
else
{

CONECTAR = new SqlConnection("Data Source=NALLE\\SQLEXPRESS;Initial Catalog=planes_estrategicos;Integrated Security=True");

string deptoplan = "insert into plan_departamento(id_plan,id_depto) values(@id_plan,@strchklist)";

DATOS = new SqlCommand(deptoplan, CONECTAR);


DATOS.Parameters.Add(new SqlParameter("@id_plan", SqlDbType.Int));
DATOS.Parameters["@id_plan"].Value = planchek.SelectedItem.Value;


DATOS.Parameters.Add(new SqlParameter("@strchklist", SqlDbType.Int));
DATOS.Parameters["@strchklist"].Value = deptocheck.SelectedItem.Value;


DATOS.Connection.Open();
DATOS.ExecuteNonQuery();
DATOS.Connection.Close();
Response.Write ("You selected : " + strchklist);
}
si alguien puede ayudarme a detectar mi error lo agradecere mucho milemguaje de programacion es C#

por que ya llevo varios dias con esto y me esta retraasando mucho y no lo gro encontrar el error



P.D . gracias por laidea del foreach dwaks
  #4 (permalink)  
Antiguo 04/07/2009, 15:12
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: recuperar valores de checkboxlist

Bueno de forma simple te dejo este ejemplo a ver si lo usas:

SqlConnection oCon = new SqlConnection("conectionstring");
SqlTransaction Tran = oCon.BeginTransaction("MiTransaction");

SqlCommand cmd = new SqlCommand();
cmd.Connection = oCon;
cmd.Transaction = Tran;

foreach (ListItem item in this.CheckBoxList1.Items)
{
if (item.Selected)
{
cmd.CommandText = "insert into plan_departamento (id_plan,id_depto) values (@id_plan,@strchklist)";

// Supongo que tienes un ID_Plan numero 5
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@id_plan", 5);
cmd.Parameters.AddWithValue("@strchklist", (int)item.Value);
cmd.ExecuteNonQuery();
}
}

// Mandamos los insert a la base de datos y Cerramos conección
Tran.Commit();
oCon.Close();


Saludos,
  #5 (permalink)  
Antiguo 04/07/2009, 19:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: recuperar valores de checkboxlist

Muchas gracias dwks realise algunas modificasiones al codigo que me mando pero ya funciona busque algo sobre transaction pero no me quedo claro para que se utiliza es una funcion que quite pero me gustaria que me mandaras algunos link donde expliquen mejor sobre este tema
gracias me ayudo mucho el codigo
  #6 (permalink)  
Antiguo 04/07/2009, 22:01
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: recuperar valores de checkboxlist

El concepto es simple, uno puede cargarle a un objeto Transaction varios comandos, ejemplo: el proceso tuyo puede generar más de 5 insert, tu le cargas todos los insert a el objeto Transaction, al final tu usas Transaction.Commit() y entonces todas esas transacciones son enviadas a la base de datos.

Así no mandas uno en uno

Lo otro es que si existe un error en el proceso tu puedes hacer un RollBack a la Transaction para que lo que se envio se elimine y comienzes denuevo.

Aquí aparecen ejemplos de Microsoft: http://msdn.microsoft.com/es-es/libr...on(VS.80).aspx

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:00.