Hola.
Ocurre esto, mi dataset queda con estos datos (vistos en el Dataset Visualizer)
ID Descripcion Imagen
1 Imagen 1 System.Byte[]
2 Imagen 2 System.Byte[]
3 Imagen 3 System.Byte[]
Y el codigo es este:
Load:
Código:
private void Form1_Load(object sender, EventArgs e)
{
rptReporte rpt = new rptReporte();
DataSet mids = RetornarDataSet();
rpt.SetDataSource(mids.Tables[0]);
crystalReportViewer1.ReportSource = rpt;
}
Código:
public static byte[] tomaBytes(string archivin)
{
FileStream obtenArchivo = new FileStream(archivin, FileMode.Open);
BinaryReader br = new BinaryReader(obtenArchivo);
byte[] imagenBytes = new byte[(int)obtenArchivo.Length];
// int valor = imagenBytes .Length;
br.Read(imagenBytes, 0, (int)obtenArchivo.Length);
br.Close();
obtenArchivo.Close();
return imagenBytes;
}
DataSet RetornarDataSet()
{
DataRow dr;// = new DataRow();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
dt.Columns.Add("Codigo", System.Type.GetType("System.String"));
dt.Columns.Add("Descripcion", System.Type.GetType("System.String"));
dt.Columns.Add("Imagen", System.Type.GetType("System.Byte[]"));
dr = dt.NewRow();
dr["Codigo"] = 1;
dr["Descripcion"] = "Imagen 1";
dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen1.jpg");
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Codigo"] = 2;
dr["Descripcion"] = "Imagen 2";
dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen2.jpg");
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Codigo"] = 3;
dr["Descripcion"] = "Imagen 3";
dr["Imagen"] = tomaBytes(Application.StartupPath + @"\Imagen3.jpg");
dt.Rows.Add(dr);
ds.Tables.Add(dt);
ds.Tables[0].TableName = "Imagenes";
return ds;
}
El problema es que veo la misma imagen repetidar tres veces y los campos ID y Descripcion no se visualizan en el reporte.
Gracias