Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak załadować obraz z SQL Server do ramki graficznej?

Nigdy nie przesłałeś zawartości obrazu do bazy danych. To tylko nazwa pliku.

Powiedz, jako przykład, że masz ścieżkę do pliku do pracy (wydaje się, że masz, biorąc pod uwagę treść pytania). W swojej aplikacji prześlij to do bazy danych w następującym formacie:

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

Pamiętaj, że Twój pic najprawdopodobniej będzie trzeba zmienić typ danych. Typowym typem tych informacji jest VARBINARY .

Następna część to wczytanie pliku do PictureBox. W tym celu musisz WYBRAĆ dane:

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

I to powinno być o tym. Możesz chcieć przeprowadzić lepsze kontrole bezpieczeństwa, ale to powinno pomóc Ci zacząć.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozwiązania dla INSERT OR UPDATE w SQL Server

  2. Dlaczego wykonanie tej instrukcji Sql (z 2 połączeniami tabel) zajmuje 5 minut?

  3. Nie można załadować biblioteki DLL „SqlServerSpatial.dll”

  4. Wyłącz wszystkie indeksy nieklastrowane

  5. Przekazywanie pustej listy do parametru typu tabeli zdefiniowanego przez użytkownika w funkcji skalarnej