sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo cargar una imagen de SQL Server en el cuadro de imagen?

Nunca subiste el contenido de la imagen a la base de datos. Ese es solo el nombre del archivo.

Digamos, como ejemplo, que tiene una ruta de archivo para trabajar (parece que la tiene, dado el contenido de la pregunta). En su aplicación, subiría esto a la base de datos siguiendo este formato:

byte[] image = File.ReadAllBytes("D:\\11.jpg");

SqlCommand sqlCommand = new SqlCommand("INSERT INTO imageTest (pic_id, pic) VALUES (1, @Image)", yourConnectionReference);
sqlCommand.Parameters.AddWithValue("@Image", image);
sqlCommand.ExecuteNonQuery();

Tenga en cuenta que su pic Lo más probable es que el campo necesite cambiar el tipo de datos. Un tipo común para esta información es VARBINARY .

La siguiente parte es leer el archivo en un PictureBox. Para esto, deberá SELECCIONAR los datos:

SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT pic FROM imageTest WHERE pic_id = 1", yourConnectionReference));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);

if (dataSet.Tables[0].Rows.Count == 1)
{
    Byte[] data = new Byte[0];
    data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]);
    MemoryStream mem = new MemoryStream(data);
    yourPictureBox.Image= Image.FromStream(mem);
} 

Y eso debería ser todo. Es posible que desee realizar mejores controles de seguridad, pero esto debería ayudarlo a comenzar.