sql >> Databáze >  >> RDS >> Sqlserver

Jak načíst obrázek z SQL Serveru do obrázkového pole?

Obsah obrázku jste nikdy nenahráli do databáze. To je jen název souboru.

Řekněme jako příklad, že máte cestu k souboru, se kterou můžete pracovat (s ohledem na obsah otázky se zdá, že ano). Ve své aplikaci byste to nahráli do databáze v tomto formátu:

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

Mějte prosím na paměti, že váš pic pole bude pravděpodobně muset změnit typ dat. Běžný typ těchto informací je VARBINARY .

Další částí je načtení souboru do PictureBoxu. K tomu budete muset VYBRAT data ven:

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

A o tom by to mělo být. Možná budete chtít provést lepší bezpečnostní kontroly, ale toto by vám mělo pomoci začít.



  1. Najít sloupce vrácené funkcí s hodnotou tabulky (příklady T-SQL)

  2. Struktura databáze Drupal – efektivní/neefektivní?

  3. Více dotazů v jednom api

  4. Změňte identifikátor tenkého klienta Oracle JDBC