C #

C# Winforms ile resim kaydetme


SAYILAR

Okunma Sayı 1463
Beğenme Sayı 14
Yorum Sayı 0
ETİKET BULUTU

  • C# C# WINFORMS SCRIPTS COUNTRY FLAGS COUNTRY CURRENCY

C# Winforms ile resim kaydetme

Halil Yılmaz , 26.03.2019 18:21:04


Mssql Server içerisinde data tipi image olarak tuttuğumuz resimlerimizi C# winforms uygulaması ile kayıt etme, sorgulama ve gösterme işlemlerini
yaptığım örnek uygulama içerisinde anlatmaya çalıştım.


Yaptığım örnek uygulama içerisinde şunları bulacaksınız.
1. image veri tipi C# winforms ile kaydetme ve okuma
2. Mdi form uygulama örneği
3. Mdi form içerisinde birden fazla child pencere açılmasını engelleme
4. Ülke bayrakları, para birim ve simgeleri bulunan hazır bir veritabanı

Kod örnekleri

Mdi form içinde child form açmak için :
FrmMain isminde bir ana formumuz var yani MdiParent, ana formu mdiparent yapmak için FrmMain üzerindeyken Properties kısmından IsMdiContainer true yapıyoruz.

FrmMain içerisinde açılmasını istediğimiz iki adet form daha oluşturuyoruz, ben bunlara FrmEkle ve FrmGoster isimlerini verdim.
FrmMain'e 2 adet buton ekliyoruz ve Click eventine aşağıdaki kodu yazdığımızda istediğimiz formun açıldığını görebiliriz.


// Standart mdiChild form açmak için
FrmGoster fGosterForm = new FrmGoster();
fGosterForm.MdiParent = this;
fGosterForm.Show();

Ancak bu kod ile aynı formun birden fazla açıldığını göreceksiniz. Ben aynı formun sadece bir kere açılmasını istediğim için küçük bir kontrol eklemeliyim.



public void YavruForm(Form _Form)
        {
            if (!YavruFormAktif(_Form))
            {
                _Form.MdiParent = this;
                _Form.Show();
            }

        }

        public bool YavruFormAktif(Form Form)
        {
            bool FormAcik = false;

            if (MdiChildren.Count() > 0)
            {
                foreach (var item in MdiChildren)
                {
                    if (Form.Name == item.Name)
                    {
                        item.Activate();
                        FormAcik = true;
                    }
                }
            }
            return FormAcik;
        }

Şimdi buton click event kodumu buna göre düzenliyorum


//Birden fazla mdichild form açılmasını engellemek için
FrmGoster fGosterForm = new FrmGoster();
fGosterForm.Name = "fGoster";
YavruForm(fGosterForm);

Burada fGosterForm.Name = "fGoster" kısmına dikkat etmeliyiz, formumuza bir lakap yani nickname veriyoruz ve benzersiz olmasına özen gösteriyoruz.
YavruForm içerisine bu ismi gönderdiğimizde önce bu isimli bir form aktif mi kontrol edilmesini ve değilse açılmasını sağlamış oluyoruz.
 

Mssql'de data tip özelliği image olarak seçildiğinde yapılacak işlemler :

Seçtiğimiz resmi Mssql veritabanına kayıt etmek için



FileStream fs = new FileStream(DosyaYolu, FileMode.Open, FileAccess.Read);

            BinaryReader br = new BinaryReader(fs);

            byte[] resim = br.ReadBytes((int)fs.Length);

            br.Close();

            fs.Close();

//Insert ederken
SqlCmd.Parameters.Add("@bayrak", SqlDbType.Image, resim.Length).Value = resim;

Paylaştığım örnek uygulama içerisinde daha detaylı görebilirsiniz.

Mssql image olarak kayıt edilen veriyi göstermek için


byte[] Resim = (byte[])DtableDetay.Rows[0]["bayrak"];
                    using (MemoryStream ms = new MemoryStream(Resim))
                    {
                        pictureBox1.Image = Image.FromStream(ms);
                    }

Ülke, bayrak, para birim ve simgelerinin olduğu hazır veritabanı script ve örnek C# winform proje dosyasına Github üzerinden ulaşabilirsiniz..

CountryImageCurrency

 


Yorumlar


Henüz Hiç Yorum Yapılmamış.