none
Mostrar datos de un procedimiento almacenado en un dataset y usarlo en crystal report RRS feed

  • Pregunta

  • Hola a todos, estoy utilizando c# 2008 y sql server 2008, la situacion es la siguiente.

    Tengo un procedimiento almacenado que hace una suma y despues hace un select de la misma tabla, el codigo es este:

    CREATE PROCEDURE ejemploSuma
    AS
    BEGIN
    SELECT SUM(precio) AS suma FROM historialMantenimiento
    select * from historialMantenimiento
    END

    Cuando lo pruebo en sql funciona correctamente, pero cuando cargo el procedimiento almacenado en el dataset solo me muestra la suma y los demas campos no aparecen, alguien me podria decir a que se debe esto y como lo puedo solucionar.


    Nunca te rindas

    martes, 24 de abril de 2012 18:50

Respuestas

Todas las respuestas

  • Un dataset es capaz de almacenar más de un datatable.  Nunca trabajo con datasets porque son muy lentos, así que le dejo de tarea buscar cómo llenar el dataset con múltiples resultados.  Seguramente en Google aparece la respuesta rápidamente.  Yo empezaría por leer MSDN Online, el tema de SqlDataAdapter.Fill.

    Jose R. MCP

    martes, 24 de abril de 2012 18:55
  • hola

    [Crystal Reports] Usar DataSet Tipado con dos DataTabla

    apunta a lago como en el articulo

    o sea puede invocar los procedure o las queries y asignar cada datatable que forman el dataset que cargas al reporte

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Mark0_Ant0n10 lunes, 30 de abril de 2012 19:14
    martes, 24 de abril de 2012 20:10
  • muchas gracias leandro, tu aporte me sirvio para terminar el proyecto, solo lo tuve que adaptar el código con procedimientos almacenados

    public static dsConsultarMantenimientoXPeriodo consultarMantenimientoXPeriodo(DateTime fechaI, DateTime fechaF)
            {
                dsConsultarMantenimientoXPeriodo d = new dsConsultarMantenimientoXPeriodo();
                SqlConnection conexion = new SqlConnection(Base_de_Datos.obtenerCadenaConexion());
                {
                    #region datos
                    SqlCommand Query = new SqlCommand("consultarMantenimientoXFecha", conexion);
                    Query.CommandType = CommandType.StoredProcedure;
                    SqlParameter parametro = new SqlParameter();
                    Query.Parameters.AddWithValue("@fechaInicio", fechaI);
                    parametro.SqlDbType = SqlDbType.DateTime;
                    Query.Parameters.AddWithValue("@fechaTermino", fechaF);
                    parametro.SqlDbType = SqlDbType.DateTime;
                    SqlDataAdapter SqlDa = new SqlDataAdapter(Query);
                    SqlDa.Fill(d, "datos");
                    #endregion

                    #region periodo
                    Query = new SqlCommand("consultarFechasPeriodoMantenimiento", conexion);
                    Query.CommandType = CommandType.StoredProcedure;
                    parametro = new SqlParameter();
                    Query.Parameters.AddWithValue("@i", fechaI);
                    parametro.SqlDbType = SqlDbType.DateTime;
                    Query.Parameters.AddWithValue("@f", fechaF);
                    parametro.SqlDbType = SqlDbType.DateTime;
                    SqlDa = new SqlDataAdapter(Query);
                    SqlDa.Fill(d, "periodo");
                    #endregion

                }
                return d;
            }


    Nunca te rindas

    lunes, 30 de abril de 2012 19:18