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

se puede? y si, si, como?

Estas en el tema de se puede? y si, si, como? en el foro de ASPX (.net) en Foros del Web. Hola a todos..... Tengo un DataGrid que me muestra asi la informacion: # de cuenta Cuenta 1 2 1000 ---------- xxxxx 0 1010 aaaa 3941.31 ...
  #1 (permalink)  
Antiguo 06/03/2006, 13:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Pregunta se puede? y si, si, como?

Hola a todos.....

Tengo un DataGrid que me muestra asi la informacion:

# de cuenta Cuenta 1 2
1000 ---------- xxxxx 0
1010 aaaa 3941.31
1020 bbbb 775.5
1030 cccc 557.39
1000 xxxxx 57.35
1010 aaaa 14.76
1020 bbbb 10284.35
1030 cccc 5469.3

y quiero mostrar la informacion asi:

# de cuenta Cuenta 1 2
1000 xxxxx 0 57.35
1010 aaaa 3941.31 14.56
1020 bbbb 775.5 10284.35
1030 cccc 557.39 5469.3


El 1 y 2 son periodos que van a ir desde 1 hasta el 12 que corresponden a los meses del año.....

Se puede? como se hace.....?

Gracias
  #2 (permalink)  
Antiguo 06/03/2006, 14:09
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
De poder se puede (ver artículo), pero no de una manera tan sencilla como hacerlo con SQL.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 06/03/2006, 17:27
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años
Puntos: 7
la forma mas simple seria que envies la informacion desde el sql como la necesites para la grid. que dbm usas?
__________________
No tengo firma ahora... :(
  #4 (permalink)  
Antiguo 07/03/2006, 07:50
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias....

Gracias xknown y Mickel.... por su ayuda.....

Mickel ..... que es dbm ? Data Base Manager?
  #5 (permalink)  
Antiguo 08/03/2006, 13:13
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola
si usas MS sql server, tendrias que usar basicamente consultas anidadas y sele case para generar el resultset como lo necesitas

otra es desde .NET generar este formato usando un dataset por ejemplo y filtrando la informacion para generarlo.

saludos
  #6 (permalink)  
Antiguo 08/03/2006, 14:30
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias por su ayuda y respuestas, estoy pensando hacer varias consultas y acomodar los resultados en los datagrid como los necesito......

abusando de se gentileza...... como le pongo comillas simples a esta sentecia:

Código:
sql_grilla_data_1=new sqldataadapter("select monto from gastos where depto=" & deptos.selecteditem.value & "and afb=" & afb.selecteditem.value & "and version=" & ver.selecteditem.value & "and periodo BETWEEN " & periodo_ini.selecteditem.value & "and" & periodo_fin.selecteditem.value, conexion)
puse en negrita donde las necesito..... deseo pasar eso valores como texto...

gracias
  #7 (permalink)  
Antiguo 08/03/2006, 15:10
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
..."and afb= ' " & afb.selecteditem.value & " ' and version=" ...
  #8 (permalink)  
Antiguo 08/03/2006, 15:16
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Usa procedimientos almacenados, o en su lugar consultas parametrizadas. No concatenes los valores a la consulta SQL!

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 08/03/2006, 17:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Tengo muy pocos conocimientos en SQL y ASP.Net.... por lo cual no se como hacer un procedimiento almacenado o una consulta parametrizada..... me podrias poner un ejemplo?

De todos modos voy a buscar informacion en este foro e internet

Muchas gracias a todos
  #10 (permalink)  
Antiguo 05/04/2006, 16:02
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola de nuevo....

Resulta que ya me salio el procedimiento almacenado y la pagina de ASP.Net ya me despliega los resultados (gracias a su valiosa ayuda), pero lo que aun no he podido resolver es como mostrar los datos asi:

Tengo un DataGrid que me muestra asi la informacion:

# de cuenta Cuenta 1 2
1000 ---------- xxxxx 0
1010 aaaa 3941.31
1020 bbbb 775.5
1030 cccc 557.39
1000 xxxxx 57.35
1010 aaaa 14.76
1020 bbbb 10284.35
1030 cccc 5469.3

y quiero mostrar la informacion asi:

# de cuenta Cuenta 1 2
1000 xxxxx 0 57.35
1010 aaaa 3941.31 14.56
1020 bbbb 775.5 10284.35
1030 cccc 557.39 5469.3

splinter me aconseja que utilice consultas anidadas y select case, pero la verdad no tengo idea de como hacerle y ya he buscado informacion en este foro y en gogle pero no he encontrado, mi stored procedure es asi (muy sencillo):

CREATE PROCEDURE Consulta_gastos @depto int, @afb text, @version text, @p_ini numeric, @año_ini numeric, @p_fin numeric, @año_fin numeric
as
select ctta, monto from dbo.gastos where depto=@depto and afb like @afb and version like @version and periodo between @p_ini and @p_fin and año between @año_ini and @año_fin
GO


Si me pueden dar un ejemplo o un link donde pueda consultar info. se los agradeceria mucho como simpre.....

gracias
  #11 (permalink)  
Antiguo 06/04/2006, 17:14
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Mensaje Aqui tienes un ejemplo...

Aqui tienes un ejemplo en ASP.NET C#:

Código:
string ConnectStr;
ConnectStr="Mi cadena de conexion";
SqlConnection StrConnection= new SqlConnection(ConnectStr);
StrConnection.Open();

SqlParameter [] arParms = new  SqlParameter[2]; // 2 es el número de parámetros.

arParms[0] = new SqlParameter("@idempleado",SqlDbType.Int); 
arParms[0].Value =Convert.ToInt64(Session["idempleado"]);
arParms[1] = new SqlParameter("@nombreempleado",SqlDbType.NVarChar); 
arParms[1].Value =Convert.ToString(Session["nombre_empleado"]);

DataSet dsUser = SqlHelper.ExecuteDataset(StrConnection,CommandType.StoredProcedure,"nombre_stored_procedure",arParms);
Espero te sirva... Saludos

Última edición por levis; 06/04/2006 a las 17:20
  #12 (permalink)  
Antiguo 07/04/2006, 09:06
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 4 meses
Puntos: 0
¡Hola!

¿Sabes? Lo que más me gusta de trabajar con los grids de .net es que haces todo en sql u oracle y luego muestras en el grid la data con un solo databind.

En la ayuda de SQL busca Cross-Tab Reports. Verás que podrás hacer exactamente lo que quieres en tu store procedure y ya sólo tendrás que pintar los datos en el grid.

Espero que te funcione...;)
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #13 (permalink)  
Antiguo 10/04/2006, 15:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias

Buscando info en la red encontre este ejemplo:

Código:
CREATE PROCEDURE gastos
@tabla varchar(255),
@pivot varchar(255),
@agrupacion varchar(255),
@campo varchar(255),
@calculo varchar(20)
as
declare @strg as varchar(8000)
declare @sql as varchar(8000)
create table #pivot(pivot varchar(8000))
set @strg="
set @sql="
set @strg=@strg+'insert into #pivot select distinct'''+@calculo+'(case when'+@pivot+'=''''''+rtrim(cast('+@pivot+'as varchar(500)))+'''''' then'+@campo+'else null end) as '''''+@calculo+'_''+rtrim(cast('+@pivot+'as varchar(500)))+'''''',''as pivot from'+@tabla+'where'+@pivot+'is not null'
execute(@strg)

set @sql='select'
select @sql=@sql+rtrim(convert(varchar(500),pivot))
from #pivot order by pivot
if @agrupacion<>'*'
begin
set @sql=@sql+@agrupacion+'from'+@tabla+'group by'+@agrupacion
end
else
begin
set @sql=@sql+'''todos'' as t form'+@tabla
end
GO
y en mi pagina de ASP.Net puse:

Código:
ub crosstab(sender as system.object, e as system.eventargs)
dim myDataAdapter_1 as sqlDataAdapter
dim myCommand as SqlCommand
dim myDataset_1 as Dataset
conexion.open()

mydataadapter_1=new sqldataadapter("iusr_acix.SP_finanzas", conexion)
mydataadapter_1.selectcommand.commandtype=commandtype.storedprocedure

mydataadapter_1.selectcommand.parameters.add(new sqlparameter("@tabla",sqldbtype.varchar, 8000))
mydataadapter_1.selectcommand.parameters.add(new sqlparameter("@pivot",sqldbtype.varchar, 8000))
mydataadapter_1.selectcommand.parameters.add(new sqlparameter("@agrupacion",sqldbtype.varchar, 8000))
mydataadapter_1.selectcommand.parameters.add(new sqlparameter("@campo",sqldbtype.varchar, 8000))
mydataadapter_1.selectcommand.parameters.add(new sqlparameter("@calculo",sqldbtype.varchar, 8000))

mydataadapter_1.selectcommand.parameters("@tabla").value="dbo.gastos"
mydataadapter_1.selectcommand.parameters("@pivot").value="gastos.ctta"
mydataadapter_1.selectcommand.parameters("@agrupacion").value="gastos.periodo"
mydataadapter_1.selectcommand.parameters("@campo").value="gastos.monto"
mydataadapter_1.selectcommand.parameters("@calculo").value="sum"

mydataset_1=new dataset
mydataadapter_1.fill(mydataset_1)
dg_2.datasource=mydataset_1
dg_2.databind()

conexion.close()
End Sub
Pero me pone un error que dice:

Cita:
Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'insert'. Line 2: Incorrect syntax near 'varchar'.
En esta linea, la 98:

Cita:
Source Error:


Line 96:
Line 97: mydataset_1=new dataset
Line 98: mydataadapter_1.fill(mydataset_1)
Line 99: dg_2.datasource=mydataset_1
Line 100:dg_2.databind()
Es correcto lo que esto haceindo?
En que momento le indico que me tome los valores de mi formulario (DropDownList, RadioButtonList, Etc.)

Si me pueden ayudar por favor que de todos modo yo he de buscar......jejejej
  #14 (permalink)  
Antiguo 11/04/2006, 11:42
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Ya me funciono!!!

Saludos..... de nuevo.

Les comento que ya me funciono el ejemplo de link: http://www.maestrosdelweb.com/editorial/sqlserver2000/

y realmente me muestra el orden de la informacion como la necesito, solo que aun no se como modificar el Stored Procedure para que tome los valores que el usuario ponga en el formulario que tengo....... porque actualmente me muestra toda la informacion que hay en la base de datos.

Estaba pensando en hacer un Stored Procedure previo donde me genere una tabla con los datos que el usuario necesite (segun lo que escoja en los DropDownList, CheckBox, Etc.) y luego darle el tratamiento en el Stored Procedure del CrossTab.......

Pero como le digo a el Stored Procedure del CrossTab que tome la tabla que me genero el primer Stored Procedure?

Se puede?

De nuevo .... Gracias
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 23:42.