bilgilerimiz öğretmeye yetmeyecektir sunmayada tabiki :)
Ewt Arkadaşlar hiçbir yerde göremeyeceğiniz ve duya mayacağınız C#.net eğitim dersi websitesi adresleri...
Web Adres Bölümü
------------------------------------------------------------------------------------------------------------------------------
Çalışmayan Linkler Var ise Lütfen bildiriniz :)
------------------------------------------------------------------------------------------------------------------------------
" C# İle Resimi Veritabanına Kaydetme " .Netframwork 2.0 Uygulamasıdır
Merhaba Arkadaşlar;
Çoğumuzun Başına Gelmiştir Veritabanında İmage Tipinde Bir Alana Resim Kaydetme.Aslında Bununla ilgili pek cok yöntem olmasına karşın.En Çok Tercih Edilen yöntemlerden birisindir.biz burada veritabanına resmi kaydederken byte dizisi olarak kaydedicez.Aşağıdaki Uygulamada NorthWind Veritabanı Kullanılmıştır
Aşağıdaki gibi Bir Ekran Tasarlayın. + olan için ben cmdEkle - olan için cmdSil ,Kaydet için cmdKaydet Oku içinde cmdOku İsimlerini Verdim şimdil Kodlara başlayalım.
Kullanıcı cmdEkle Düğmesine Bastığında Seçtiği Resmi Picturebox Nesnemizde Göstericez Şimdi bunu Kodlayalım
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
1. private void cmdEkle_Click(object sender, EventArgs e) 2. { 3. try 4. { 5. //OpenFileDialog Tanımlayoruz.ve Filtre Olarak Standart Resim 6. //Türlerini Ekledim 7. OpenFileDialog fDialog = new OpenFileDialog(); 8. fDialog.Filter = "Resim Dosyaları(*.jpg,*.png,*.gif)|*.jpg;*.gif;*.png"; 9. if (fDialog.ShowDialog()==DialogResult.OK) 10. //Eğer Resim Dosyası Seçilip Tamam Düğmesine tıklandıysa 11. { 12. //Gelen Resim Dosyamızı Gösteriyoruz Burdaki FileName Kaydederken İhtiyac 13. //Duyacağımız için picYukle Nesnesinin Tagında tutuyoruz 14. picYukle.Image = Image.FromFile(fDialog.FileName); 15. picYukle.Tag = fDialog.FileName; 16. } 17. 18. } 19. catch (Exception ex) 20. { 21. MessageBox.Show(ex.Message); 22. } 23. }
using System.IO;
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
1. private void cmdKaydet_Click(object sender, EventArgs e) 2. { 3. try 4. { 5. if (picYukle.Image==null) 6. { 7. MessageBox.Show("Lütfen Resim Seçiniz"); 8. return; 9. } 10. //Bağlantı Nesnemi Tanımladım 11. SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=Northwind;Integrated Security=True"); 12. //Komut Nesnemi Tanımladım 13. SqlCommand cmd = new SqlCommand("UPDATE Employees SET Photo=@Resim WHERE EmployeeID=1",cnn); 14. //EmployeeID si 1 olan kişinin resmini güncelle 15. cmd.Parameters.AddWithValue("@Resim",(object)ResimByteDizisiOlustur()); 16. cmd.Connection.Open(); 17. int satir = cmd.ExecuteNonQuery(); 18. cmd.Connection.Close(); 19. if (satir>0) 20. { 21. MessageBox.Show("Kaydedildi!!"); 22. } 23. } 24. catch (Exception ex) 25. { 26. MessageBox.Show(ex.Message); 27. throw; 28. } 29. } 30. byte[] ResimByteDizisiOlustur() 31. { 32. string strYol = picYukle.Tag.ToString();//Seçilen Resmin Yolunu Atıyoruz 33. byte[] veri = null; 34. //Dosya uzunluğunda byte dizi oluşturucağımız için Aşağıdaki 35. //Koda ihtiyacımız var 36. FileInfo fDosyaBilgi = new FileInfo(strYol); 37. long lngSayac = fDosyaBilgi.Length; 38. //Dosyamızı Stream Olarak Acıyoruz 39. FileStream fStream = new FileStream(strYol, FileMode.Open, FileAccess.Read); 40. BinaryReader fRead = new BinaryReader(fStream); 41. veri = fRead.ReadBytes((int)lngSayac); //Byte Dizi içine Atıyoruz 42. return veri; 43. }
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
1. private void cmdOku_Click(object sender, EventArgs e) 2. { 3. //Bağlantı Nesnemi Tanımladım 4. SqlConnection cnn = new SqlConnection("Data Source=(local);Initial Catalog=Northwind;Integrated Security=True"); 5. //Komut Nesnemi Tanımladım 6. SqlCommand cmd = new SqlCommand("SELECT Photo FROM Employees WHERE EmployeeID=1", cnn); 7. cnn.Open(); 8. SqlDataReader dr = cmd.ExecuteReader(); 9. if (dr.Read()) 10. { 11. picYukle.Image=ResimOku((byte[])dr[0]); 12. } 13. cnn.Close(); 14. } 15. 16. Image ResimOku(byte[] Veri) 17. { 18. Image bImage = null; 19. 20. using (MemoryStream mm = new MemoryStream(Veri, 0, Veri.Length)) 21. { 22. mm.Write(Veri, 0, Veri.Length); 23. bImage = Image.FromStream(mm,true); 24. } 25. return bImage; 26. }
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
1. private void cmdSil_Click(object sender, EventArgs e) 2. { 3. picYukle.Image = null; 4. picYukle.Tag=null; 5. }