buenas tardes Leandro, te contesto a tus preguntas:
el evento del gridviewer que utilizo para asignar la imagen es el SelectedindexChanged.
y dentro de este evento realizo lo siguiente:
fotosBLL BuscaRegFoto = new fotosBLL();
principaljr.fotosDataTable RegistroDTF = BuscaRegFoto.GetBuscaIdBien(rowRegistro.identificador);
if (RegistroDTF.Count == 0)
{
imgFoto.ImageUrl = "~/fotos/000.jpg";
}
else
{
MySqlConnection con = new MySqlConnection((string)Session["conexion"]);
MySqlDataAdapter da = new MySqlDataAdapter("Select * From fotos where idBien="+"'"+rowRegistro.identificador+"';", con);
MySqlCommandBuilder MyCB = new MySqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");
byte[] MyData = new byte[0];
da.Fill(ds, "MyImages");
DataRow myRow;
myRow = ds.Tables["MyImages"].Rows[0];
MyData = (byte[])myRow["foto"];
int ArraySize = new int();
ArraySize = MyData.GetUpperBound(0);
FileStream fs = new FileStream(Server.MapPath("~/fotos/origen.jpg"), FileMode.OpenOrCreate, FileAccess.Write); //@"C:\winnt\Gone Fishing2.BMP"
fs.Write(MyData, 0, ArraySize);
fs.Close();
con.Close();
imgFoto.ImageUrl = "~/fotos/origen.jpg"
}
ahora quizás me des la observación de que si ya tengo el "if (RegistroDTF.Count == 0)", ¿por qué no lo asigne directamente el en else al image con imgFoto.ImageUrl utilizando:
principaljr.fotosRow rowRegistroF = RegistroDTF[0];
imgFoto.ImageUrl = rowRegistroF.foto;
ya se que esta mal la segunda línea, pero no supe como asignarle directamente el valor de rowRegistroF.foto, por eso lo puse con el procedimiento almacenado.
si pudieras asesorarme como asignarle ese valor para quitar el procedimiento almacenado, te lo agradecería.
Ahora y para finalizar este procedimiento lo esta haciendo bien en la máquina de desarrollo incluso si actualiza la foto origen.png; del lado del cliente (ya compilada e instalada la aplicación), este bloque lo esta haciendo bien y actualizando el archivo
origen.png, pero en el formulario no la cambia, deja la primera foto que se selecciono en el gridviewer.
saludos y gracias.