C# datagrid'de görüntülenen resmi farklı formda gösterme

Bu konuyu okuyanlar

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
arkadaşlar datagridview üzerinde bir sütuna çift tıklayıp o sütuna ait verileri ekranda gösteriyorum. metinleri göstermede sorun yok. ancak resim upload ettiğim kısmı gösteremedim.

datagridin olduğu anaform'da şu şekilde değişken tanımladım
Kod:
public string profilfotografi_cek() { return dataGridView1["profilfotografiDataGridViewTextBoxColumn", dataGridView1.CurrentRow.Index].Value.ToString(); }
detay formunda ise load bölümüne şu kodu yazıyorum ancak resmi göstermiyor. convert gerekli sanırım, beceremedim
Kod:
pictureBox1.Image = ana.profilfotografi_cek();
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
140
Puanları
63
profilfotografiDataGridViewTextBoxColumn kolonu resim kolonu mu? Eğer öyle ise şu şekilde kullanman lazım:

PHP:
public Image ResimAl()
{
    Image resim=(dataGridView1["profilfotografiDataGridViewTextBoxColumn", dataGridView1.CurrentRow.Index].Value as Image);
    return resim;
}
Kullanımı da basit:

PHP:
pictureBox1.Image = ResimAl();
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
bu şekilde olmadı necati

sütun resim sütunu bu arada = profilfotografiDataGridViewImageColumn şekilnde..

verdiğin kodlarda picturebox boş gözüktü :s
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
140
Puanları
63
Çok ilginç. Verdiğim kodlar bende sorunsuz çalıştı.

Breakpoint ile dataGridView1["profilfotografiDataGridViewTextBoxColumn", dataGridView1.CurrentRow.Index].Value değeri var mı yok mu diye kontrol edebilir misin?
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
gözükmüyor böyle bi değer :s

kolon tipini sen text vermişsin ben image. iki şekildede deniyorum ikisindede sonuç yok. anaform üzerine picturebox koyuyorum yine gözükmüyor.

---------- Post added at 02:43 ---------- Previous post was at 02:04 ----------

bu şekilde olmuyosa sql'üzerinden id'sine göre çekeyim diyorum onuda göstermiyor :S
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
140
Puanları
63
Bi yerde bi hata yapıyor olmalısın. Yoksa kodlar sorunsuz çalışıyor kodlar.
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
resmi gösterme değilde eklerken şu şekilde kodlar kullanıyorum acaba resmi çekerken sorun burasıyla ilgili olabilirmi


Kod:
        OpenFileDialog fdlg = new OpenFileDialog();
        Bitmap bmp;
Kod:
 private byte[] ResimCevir(string path)
        {
            byte[] Resim;
            try
            {
                System.IO.FileStream Fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                System.IO.BinaryReader Br = new System.IO.BinaryReader(Fs);
                Resim = Br.ReadBytes((int)Fs.Length);
                Br.Close();
                Fs.Close();
            }
            catch
            {
                Resim = null;
            }
            return Resim;
        }
Kod:
            fdlg.Title = "Profil Fotoğrafı Seçiniz";
            fdlg.InitialDirectory = @"C:\";
            fdlg.Filter = "JPG Resimler (*.jpg)|*.jpg";
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                bmp = new Bitmap(fdlg.FileName);
                pictureBox1.Image = bmp;
            }
Kod:
            if (fdlg.FileName != "")
            {
                com.Parameters.AddWithValue("@profil_fotografi", ResimCevir(fdlg.FileName));
            }
            else
            {
                com.Parameters.AddWithValue("@profil_fotografi", new byte[] { });
            }
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
140
Puanları
63
Bi sorun yok gibi kodlarda. Eğer senin açından sorun olmucaksa projeni gönder pm ile. Bi bakayım bu soruna.

ResimAl() fonksiyonunu şu şekilde düzenlersen sorunun çözülür:

PHP:
public Image ResimAl()
{
    Image resim = null;
    byte[] byteResim = (byte[])dataGridView1["profilfotografiDataGridViewImageColumn", dataGridView1.CurrentRow.Index].Value;
    using (MemoryStream ms = new MemoryStream(byteResim, 0, byteResim.Length))
    {
        ms.Write(byteResim, 0, byteResim.Length);
        resim = Image.FromStream(ms, true);
    }
    return resim;
}
 
Üst