Visual CSharp .NET - pasar de un listbox a un dataset

 
Vista:

pasar de un listbox a un dataset

Publicado por Antonio (34 intervenciones) el 18/01/2007 11:00:53
Hola. Estoy haciendo cambios en una aplicación y me encuentro con el siguiente problema: tengo un listBox donde antes seleccionaba una de las opciones y pasaba el resultado a un DataSet. Para ello usaba el siguiente código:

System.Data.DataTable tabla = (System.Data.DataTable)agendasList.DataSource;
datosagenda = tabla.Rows[agendasList.SelectedIndex];
.......
return (AgendaDS.Agenda)datosagenda;

Ahora lo que quiero es seleccionar varias opciones a la vez y guardar el resultado en el mismo DataSet. De momento tengo hecho este código:

int numAgendasSeleccionadas=agendasList.SelectedIndices.Count;
ArrayList datosagenda=new ArrayList(numAgendasSeleccionadas);

System.Data.DataTable tabla = (System.Data.DataTable)agendasList.SelectedItems;
for(int i=0;i<numAgendasSeleccionadas;i++)
{
datosagenda[i]=tabla.Rows[agendasList.SelectedIndices[i]];

}

....

return (AgendaDS.Agenda)datosagenda;

El problema está en que agendasList.SelectedItems es de tipo System.ObjectCollection y no hay forma de convertirlo a nada. Si alguien ha programado alguna vez algo parecido y me puede ayudar se lo agredecería porque ahora mismo estoy bloqueado. Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pasar de un listbox a un dataset

Publicado por p@vr1 (71 intervenciones) el 18/01/2007 17:29:57
hola mae talvez esto te ayude:

en el listbox solo se muestran datos simples, como numeros o legras... no se si existen algo asi como tablas, columnas, etc como en un grid... lo que puedes hacer es tomar cada item seleccionado como un string y meterlo al arreglo manualmente, no creo que soporte el casting a DataTable como lo estas haciendo vos... (es una supocision porque no lo he usado mucho pero yo lo haria asi)

ArrayList arreglo = New ArrayList();

for(int i = 0; i < agendaList.SelectedIndices.Count; i++)
{

arreglo.Add(this.agendaList.Items[Convert.toInt32(agendaList.SelectedIndeces[i])]);
}

RECALCO... TOMO EN CUENTA QUE LO QUE GUARDAS EN EL LISTBOX SON DATOS SIMPLES COMO STRINGS, INTS, ETC... CUALQUIER COSA ME CORRIGES

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar de un listbox a un dataset

Publicado por Antonio (34 intervenciones) el 18/01/2007 17:50:16
Creo que no hay forma de convertir ese ArrayList en un DataSet. ¿Conoces alguna otra forma sin usar un ArrayList? Yo parto de este código:

System.Data.DataTable tabla =(System.Data.DataTable)agendasList.DataSource;
datosagenda=tabla.Rows[agendasList.SelectedIndex];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar de un listbox a un dataset

Publicado por p@vr1 (71 intervenciones) el 18/01/2007 18:03:51
entonces en lugar de utilizar un arraylist utiliza un datatable... es lo mismo...

no se si (System.Data.DataTable)agendasList.DataSource funciona (si no te da un castingException) si da error solo llenalo manualmente como el ejemplo que te di con el arraylist, con la diferencia que ahora va a ser un datatable...!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar de un listbox a un dataset

Publicado por Antonio (34 intervenciones) el 18/01/2007 18:10:58
El código que he puesto antes funciona pero solo coge el primer elemento seleccionado y yo lo que quiero es coger todos los elementos que he seleccionado en el ListBox y meterlos en un DataSet porque ahora mismo solo se me guarda el primero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar de un listbox a un dataset

Publicado por Antonio (34 intervenciones) el 18/01/2007 18:15:31
Por ejemplo ahora mismo he metido esta instrucción:

System.Data.DataTable tabla =(System.Data.DataTable)agendasList.SelectedItems;

Lo que quiero es meter los items seleccionados en un DataTable y luego usar una instrucción parecida a esta:

object datosagenda=tabla.Rows[agendasList.SelectedIndex];

y por último esta que es la que tengo desde el principio:

return (AgendaDS.Agenda) datosagenda;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar de un listbox a un dataset

Publicado por p@vr1 (71 intervenciones) el 18/01/2007 19:37:06
mmm diay mae fijate si esmas de un item los que vienen en SelectedItems, si es asi diay podrias sacar el index de cada uno y sacarlos manualmente, si no ahi si te quedo mal... no se que podria estar mal

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar