Hola
Darsk
Lo primero es recomendarte usar el Highlight del foro mira como se ve de bonito y facil de leer el codigo
Código C#:
Ver originalstring sql = "select * from cliente where rut =" + txtRutBuscar.Text + ";";
SqlConnection conn = new SqlConnection(@"Data Source=NICOLAS-PC\SQLEXPRESS;Integrated Security=True");
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
byte[] byteImage = (Byte[])cmd.ExecuteReader();
//byte n = Convert.ToByte(cmd.ExecuteReader());
//byte[] byteImage = n;
if (byteImage != null)
{
Response.ContentType = "image/jpeg";
Response.Expires = 0;
Response.Buffer = true;
Response.Clear();
Response.BinaryWrite(byteImage);
Response.End();
}
conn.Close();
}
Ahora si, viendo tu linea de error:
Código C#:
Ver originalbyte[] byteImage = (Byte[])cmd.ExecuteReader();
Puedes hacer la lectura de los datos llenando un
DataTable
Luego lees la fila algo parecido a esto:
Código C#:
Ver originalbyte[] byteImage = myTabla.Rows[0]["foto"]
Ahora el error:
Error 1 No se puede convertir el tipo 'System.Data.SqlClient.SqlDataReader' en 'byte[]' Ese es el error que me envia, en la siguiente linea de codigo:
Este sale, porque estas asignando a tu variable
byteImage que es de tipo
byte[] y el cmd.ExecuteReader() no retorna este tipo de dato.
Lo que puedes hacer es algo como este ejemplo:
Código C#:
Ver originalprivate static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
Mira que donde dice
Console.Write estas accediendo a una posicion del reader, creo que esa posicion corresponde a cada una de las columnas que tiene la consulta.
Saludos