• 03-05-2014, 12:38:48
    #1
    Merhaba veri tabanı access kullanıyorum resmi veri tabanına byte olarak kayıt ediyorum veri tabanında da türü OLE Nesnesi uzun ikili veri olarak çıkıyor kayıtları listelerken datagrid de tıkladığımda kişiye ait bilgiler de text nesnelerinde çıkıyor ben resminde picturebox da okutmak istiyorum, takıldığım nokta bu byte olarak kayıt oluyor. Resim Ekle
     if (DosyaAc.ShowDialog() == DialogResult.OK)
                {
                    pcProfilResim.ImageLocation = DosyaAc.FileName;
                }
    
    
                pcProfilResim.Image = Image.FromFile(pcProfilResim.ImageLocation); 
    
    
                FileInfo fInfo = new FileInfo(pcProfilResim.ImageLocation);
    
                long sayac = fInfo.Length; 
    
                FileStream fStream = new FileStream(pcProfilResim.ImageLocation, FileMode.Open, FileAccess.Read); 
    
                BinaryReader bReader = new BinaryReader(fStream); 
    
                byteResim = bReader.ReadBytes((int)sayac);

    Resmin okunması

          Image UyeResim = null;
                    oku = komut.ExecuteReader();
                    while (oku.Read())
                    {
                        
                        byte[] resim = (byte[])oku["resim_yolu"];
                        MemoryStream ms = new MemoryStream(resim, 0, resim.Length);
                        ms.Write(resim, 0, resim.Length);
                        UyeResim = Image.FromStream(ms, true);
                        pcProfilResim.Image = UyeResim;
                        
                    }
                  txtListeAd.Text = dataKayitListele.CurrentRow.Cells[1].Value.ToString();
    Resmin datagird de listelediğimde Byte[] Array değeri dönüyor olmayan kısım neresidir çözemedim.
  • 03-05-2014, 16:59:39
    #2
    Genelde projerimde resmi veritabanına kaydetmek yerine resmi programın kurulacağı yada kurulu olduğu dizine kaydedip yolunu alırım . Dizin yolunu da veritabanına kaydederim. sonra bi tane picture box eklerim. Ardından şu kod ile çekerim ;
    Alıntı
    pictureBox1.Image = Image.FromFile("../resim/image1.jpg");
    Senin yöntemi hiç denemedim yada belki yanlış anladım öyle birşey varsa şimdiden özür dilerim sadece başka yöntem sunmak istedim sana
  • 03-05-2014, 17:16:54
    #3
    aTKn94 adlı üyeden alıntı: mesajı görüntüle
    Genelde projerimde resmi veritabanına kaydetmek yerine resmi programın kurulacağı yada kurulu olduğu dizine kaydedip yolunu alırım . Dizin yolunu da veritabanına kaydederim. sonra bi tane picture box eklerim. Ardından şu kod ile çekerim ;


    Senin yöntemi hiç denemedim yada belki yanlış anladım öyle birşey varsa şimdiden özür dilerim sadece başka yöntem sunmak istedim sana
    İlginiz için teşekkürler programın klasörüne erişilirse dışarıdan müdahale edilebilir diye düşündüm bu yüzden byte olarak kayıt edip çekmek mantıklı geldi. bir kaç tane sql veri tabanı içinde örnek buldum access de yapamadım bunu
  • 04-05-2014, 01:37:58
    #4
    Üyeliği durduruldu
    veri tabanına resim kaydetme taraftarı değilim ama.. şurada byte dizine alma
    ve diziden resim olarak göstermeyle ilgili demosuda çalışan bir örnek çalışma var. incelemenizi tavsiye ederim.