C sharp - ayuda con recorrer un datareader c# y de es datareader crear otras consultas

 
Vista:
Imágen de perfil de Rene

ayuda con recorrer un datareader c# y de es datareader crear otras consultas

Publicado por Rene (1 intervención) el 15/06/2017 03:40:27
Hola, les envió saludos y quisiera que me ayudaran con un tema que me tiene detenido algún tiempo.

estoy migrando de Visual FoxPro a C#, pero en esta curva de aprendizaje me trabe.

en visual FoxPro existe una instrucción SCAN.... ENDSCAN y te permite ir registro por registro y en este momento puedes volver a generar una consulta en base a el registro actual.
por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT ventas.* FROM ventas WHERE fechaventa=?hoy INTO CURSOR _ventas
SCAN  ** recorre las ventas del dia de hoy registro por registo
	SELECT consumomateriales.idmaterial,consumomateriales.requerido FROM consumomateriales WHERE idproducto=_ventas.idproducto;
	INTO CURSOR _cartaconsumos
	SELECT _cartaconsumos
	SCAN
		SELECT compras.* FROM compras WHERE idmaterial=_cartaconsumos.idmaterial INTO CURSOR _compras
		_restantehist=_compras.restante
		_restante=restante-consumomateriales.requerido
		UPDATE compras SET restante=_restante WHERE factura=_compras.factura AND idmaterial=_compras=idmaterial
		INSER INTO movimientos (facturaventa,fechaventa,idproducto,idmaterial,facturacompra,fechacompra,requerido);
			VALUES (?_ventas.facturaventa,?_ventas.fechaventa,?_ventas.idproducto,?_compras.idmaterial,?_compras.facturacompra,?_restantehist)
	ENDSCAN
	SELECT ventas
ENDSCAN

se que existe este comando DataReader y nextResult pero también marca error si abro varias conexiones al mismo tiempo y no se como manejar las variables para hacer las subconsultas, he buscado en varios libros de c# y en ninguno aborda este tema.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using(SqlConnection cn = new SqlConnection("connection string"))
{
	cn.Open();
 
	string query = @"SELECT * FROM NombreTabla";
 
	SqlCommand cm = new SqlCommand(query, cn);
 
	SqlDataReader dr = cm.ExecuteReader();
 
	while(dr.Read())
	{
		ListBox1.Items.Add(Convert.ToString(reader("campo1")));
	}
}


les agradecería mucho si me ´pueden ayudar y también la propuesta económica si la hay.

Saludos desde México.

René Cortés
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 707
Oro
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

ayuda con recorrer un datareader c# y de es datareader crear otras consultas

Publicado por Wilfredo Patricio Castillo (416 intervenciones) el 16/06/2017 07:55:07
No es complicado, solo que el enfoque es un poquito diferente.

Hace años que dejé FOX, pero he reescrito varios sistemas hechos en VFP a C#, y créeme que no es difícil, cuando veas lo fácil que es te darás cuenta de lo que te estabas perdiendo.

Hay cosas que no existen en C#, a las que posiblemente hayas estado acostumbrado, como las famosas macros sustitución (&), por lo demás no extrañarás nada.

Saludos cordiales,
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
sin imagen de perfil

ayuda con recorrer un datareader c# y de es datareader crear otras consultas

Publicado por Jorge (3 intervenciones) el 21/06/2017 02:18:01
si lo puedes hacer, solo necesitas recordar que para hacer eso necesitas dos o mas instancias sqlcommand o datareader declaradas,
.... pero... te recomiendo que ese tipo de de consulta se lo dejes a tu administrador de base de datos, si es SQL, haz un SP en el que hagas ese codigo, lo mismo en ORACLE.
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