Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come caricare l'immagine da SQL Server nella casella immagine?

Non hai mai caricato il contenuto dell'immagine nel database. Questo è solo il nome del file.

Supponiamo, ad esempio, di avere un percorso di file con cui lavorare (sembra di sì, dato il contenuto della domanda). Nella tua applicazione, lo caricheresti nel database seguendo questo 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();

Tieni presente che la tua pic molto probabilmente dovrà cambiare il tipo di dati. Un tipo comune per queste informazioni è VARBINARY .

La parte successiva sta leggendo il file in un PictureBox. Per questo, dovrai SELEZIONARE i dati in uscita:

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);
} 

E questo dovrebbe essere tutto. Potresti voler eseguire controlli di sicurezza migliori, ma questo dovrebbe aiutarti a iniziare.