sobota 12. dubna 2008

Programování - ukládání a načítání obrázku z/do databáze (.NET & MSSQL)

  • obrázek je ukládaný v SqlServeru jako typ Image

Načítání obrázku:

   1:  // Načtení prvního obrázku v tabulce do PictureBoxu
   2:  SqlConnection pripojeni = new SqlConnection(pripojovaciRetezec);
   3:  pripojeni.Open();
   4:   
   5:  SqlCommand cmd = new SqlCommand("SELECT * FROM obrazky", pripojeni);
   6:   
   7:  SqlDataReader reader = cmd.ExecuteReader();
   8:  reader.Read();
   9:   
  10:  MemoryStream ms = new MemoryStream( (Byte[])reader["Obrazek"] );
  11:   
  12:  pictureBox1.Image = Image.FromStream(ms);
  13:   
  14:  reader.Close();
  15:  pripojeni.Close();

 

Ukládání obrázku:

 

   1:  // Uložení obrázku do db vybraného pomocí openFileDialogu
   2:  if (openFileDialog1.ShowDialog() == DialogResult.OK)
   3:  {
   4:      string cesta = openFileDialog1.FileName;
   5:   
   6:      SqlConnection pripojeni = new SqlConnection(pripojovaciRetezec);
   7:      pripojeni.Open();
   8:   

9: SqlCommand cmd = new SqlCommand("INSERT INTO obrazky (Obrazek,Nazev)

VALUES (@Obrazek, @Nazev)", pripojeni);

  10:   
  11:      cmd.Parameters.Add(new SqlParameter("Obrazek", SqlDbType.Image));
  12:      cmd.Parameters.Add(new SqlParameter("Nazev", SqlDbType.VarChar));
  13:   
  14:      FileStream fs = new FileStream(cesta, FileMode.Open);
  15:      Byte[] obr = new Byte[fs.Length];
  16:      fs.Read(obr, 0, Convert.ToInt32(fs.Length));
  17:   
  18:      cmd.Parameters["Obrazek"].Value = obr;
  19:      cmd.Parameters["Nazev"].Value = openFileDialog1.SafeFileName;
  20:   
  21:      cmd.ExecuteNonQuery();
  22:   
  23:      pripojeni.Close();
  24:  }



Žádné komentáře: