Visual CSharp .NET - reporte C#

   
Vista:
Imágen de perfil de isai

reporte C#

Publicado por isai (1 intervención) el 26/01/2015 19:57:19
Hola,

Tengo un reporte en C# con ReportViewer y RDLC.
En mi diseño tengo una imagen

Mi base de datos es MySQL con los sig. campos:
id int(8)
nombre varchar(80)
imagen varchar(100)

bien en el campo imagen como podran darse cuenta guardo la ruta de la imagen a usar. Las imágenes se guardan en una computadora que actuará como servidor.

En el reporte le indique que la imagen es Externa y al probarla localmente funciono bien. Al por los parametros de red la imagen no se despliega.

Bien intenté los siguiente en una variable guardar la imagen como tal e indicarle en el reporte que es una imagen desde la base de datos.

class empleado:
1
2
3
4
5
6
7
8
9
namespace MenuPrincipal
{
    public class EEmpleado
    {
        public int idempl { get; set; }
        public string nomempl { get; set; }
        public Image foto { get; set; }
    }
}

y cuando leo el registro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.Drawing;
using System.IO;
 
namespace MenuPrincipal
{
    class DataEmpleados
    {
        /**
         * Clase que genera los datos a enviar al reporte
         * se debe de pasar por parametro el id del empleado.
         */
 
        public static EEmpleado GetEmpleado(string idempl)
        {
            //inicio la instancia del empleado
            EEmpleado empl = new EEmpleado();
 
            //Conexion con la base de datos
            MySqlConnection conexion = BdConexion.ObtenerConexion();
 
            string sqlCadena = "";
 
            sqlCadena = "SELECT t1.idempl AS idempl, CONCAT(t1.nomempl,' ', t1.appempl,' ', t1.apmempl) AS nomempl, t1.fecnac AS fecnac, t2.nomesta AS edonac, t1.curpempl as curpempl,t1.rfcempl AS rfcempl,"
                            + "t1.calle AS calle, t1.noext AS noext, t1.noint AS noint, t1.colonia AS colonia, t1.municip AS municip, t3.nomesta AS estado, ifnull(t1.cp,0) AS cp, t1.fecing AS fecing, ifnull(t1.sdi,0) AS sdi, t1.edocivil AS edocivil,"
                            + "ifnull(t1.cuota,0) AS cuota, ifnull(t1.semaneto,0) AS semaneto, ifnull(t1.catorce,0) AS catorce, ifnull(t1.contrato,0) AS contrato, t4.nomcate AS catego, ifnull(t5.nomobra,'') AS obra, t1.imss AS imss, ifnull(t1.noclinica,0) AS noclinica, t1.pagomatico AS pagomatico,"
                            + "t1.beneficiario AS beneficiario, t1.fecnacben AS fecnacben, t1.parentesco AS parentesco, t1.credito AS credito, t1.nocred AS nocred, t1.foto AS foto, ifnull(t6.regpat,'') AS regptronal, ifnull(t1.vsmd,0) AS vsmd,t1.fecinitar AS fecinitar,"
                            + "t1.fecfintar AS fecfintar, t1.fecpertar AS fecpertar FROM empleados AS t1 "
                            + "LEFT JOIN estados AS t2 ON t1.idesta = t2.idesta "
                            + "LEFT JOIN estados AS t3 ON t1.idesta = t3.idesta "
                            + "LEFT JOIN categorias AS t4 ON t1.idcate = t4.idcate "
                            + "LEFT JOIN obras AS t5 ON t1.idobra = t5.idobra "
                            + "LEFT JOIN registros AS t6 ON t5.idobra=t6.idobra WHERE idempl = " + idempl;
 
            MySqlCommand miComando = new MySqlCommand(sqlCadena, conexion);
            miComando.ExecuteNonQuery();
 
            //leo el resultado
            MySqlDataReader regEmpl = miComando.ExecuteReader();
 
            //Asigno los valores a los campos correspondientes
            while (regEmpl.Read())
            {
 
                empl.idempl = Convert.ToInt32(regEmpl["idempl"]);
                empl.nomempl = (string)regEmpl["nomempl"];
 
                using (FileStream stream = new FileStream((string)regEmpl["foto"], FileMode.Open, FileAccess.Read))
                {
                    empl.foto = Image.FromStream(stream);
                }
 
 
            //cierro conexion
            conexion.Close();
            //regreso la instancia de empleado
            return empl;
        }
 
    }
}

Pero al desplegar el reporte no me muestra la foto, me pueden ayudar.

Saludos
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

reporte C#

Publicado por antonio (2 intervenciones) el 14/03/2016 17:46:12
porque no guardar la imagen en la base de datos con un campo imagen?
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