ACCESS Veritabanına Resim Kaydetmek
Bu Makalemizde Access Veritabanına Nasıl Resim Kaydedilir Onu İnceleyeceğiz,Gerçi Veritabanına,
Direkt Resim Kaydetmek Hernekadar Tavsiye Edilmeyen Bir Yöntem Olsada,Google’da Dolaştığım Zaman,
Bazı Arkadaşların Ben Veritabanıma Resim Kaydetmek İstiyorum Soruları Doğrultusunda Böyle Bir Makale,
Yayınlamaya Karar Verdim,Hiç Zaman Kaybetmeden Access 2007 Projemizi Açıyoruz Ve Calisan.mdb Adında Bir,
Veritabanı Oluşturuyoruz Ardından Tablomuzu Aşağıdaki Gibi Tasarlıyoruz.

CalisanID OtomatikSayi
Ad Metin (40)
Soyad Metin (40)
Yas Sayi
Resim OleNesnesi
Cinsiyet Metin (5)
Resim Kolonunu OleNesnesi Olarak Seçiyoruz Ki Kaydedeceğimiz Resimleri Byte Düzeyinde İkili Veri Olarak Kaydedebilelim.
Cinsiyet Kısmını İse Metin Olarak Seçiyoruz Ve Alan Boyutunu 5 Olarak Ayarlıyoruz ki Buraya Sadece Bay ve Bayan Olarak,
Kayıt Ettireceğiz.Evet Oluşturduğumuz Access Veritabanımızı 2003 Olarak Kaydediyoruz.
Visual Studio İle Yeni Bir Form Projesi Oluşturuyoruz,İlk Olarak Solution Hemen Üstünde Yer Alan ShowAllFiles Seçeneğini,
Seçiyoruz Daha Sonra bin->Debug Klasörü İçerisine Calisan.mdb Veritabanımızı Kopyala Yapıştır Yaparak İçerisine Koyuyoruz,
Biraz Bekledikten Sonra Karşımıza Aşağıdaki Gibi Bir Yapı Çıkacaktır Resimdeki Gibi Tasarlıyoruz Ve Finish Diyerek Devam,
Ediyoruz.

Hemen Tasarım Kısmına Geçiyoruz Ve Resimdeki Gibi Tasarımımızı Gerçekleştiriyoruz.Butonlarımızın FlatStyle Özelliğini,
Flat Yaparsak Daha Güzel Ve Kibar Bi Görünüm Kazanacaktır.
Evet Projemize SağClik AddNewItem CalisanE.cs Adında Yeni Bir Class Ekliyoruz Ve Kodlarımızı Aşağıdaki Gibi Yazıyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace Access_Resim_Kaydetmek
{
public class CalisanE
{
private int _calisanid;
public int CalisanID
{ get { return this._calisanid; } set { this._calisanid = value; } }
private string _ad;
public string Ad
{ get { return this._ad; } set { this._ad = value; } }
private string _soyad;
public string Soyad
{ get { return this._soyad; } set { this._soyad = value; } }
private int _yas;
public int Yas
{ get { return this._yas; } set { this._yas = value; } }
private Image _resim;
public Image Resin
{ get { return this._resim; } set { this._resim = value; } }
private Cinsiyet _cinsiyet;
public Cinsiyet Cinsiyet
{ get { return this._cinsiyet; } set { this._cinsiyet = value; } }
public CalisanE()
{
}
public override string ToString()
{ return this._ad + ” ” + this._soyad; }
}
}
Hemen AddNewItem CalisanF.cs Adında İkinci Bir Class Daha Ekiyoruz Ve Kod Kısmını Aşağıdaki Gibi Yazıyoruz
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Collections;
using System.Data;
using System.IO;
using System.Drawing;
namespace Access_Resim_Kaydetmek
{
public enum Cinsiyet : byte
{ Bay,Bayan }
public class CalisanF
{
private static string connectionString =
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Application.StartupPath + “\Calisan.mdb“;
public static void CalisanKaydet(CalisanE calis)
{
string strInsert = “Insert Into Calisanlar(Ad,Soyad,Yas,Resim,Cinsiyet)Values(@ad,@soyad,@yas,@resim,@cinsiyet)”;
OleDbConnection cn = new OleDbConnection(connectionString);
OleDbCommand com = new OleDbCommand(strInsert,cn);
com.Parameters.AddWithValue(“@ad”, calis.Ad);
com.Parameters.AddWithValue(“@soyad”, calis.Soyad);
com.Parameters.AddWithValue(“@yas”, calis.Yas);
MemoryStream ms = new MemoryStream();
calis.Resin.Save(ms, calis.Resin.RawFormat);
byte[] resimDizim = ms.GetBuffer();
com.Parameters.AddWithValue(“@resim”, resimDizim);
com.Parameters.AddWithValue(“@cinsiyet”, (Cinsiyet)Enum.Parse(typeof(Cinsiyet), calis.Cinsiyet.ToString()));
cn.Open();
com.ExecuteNonQuery();
cn.Close();
}
public static void CalisanGetir(ComboBox Liste)
{
string strSelect = “SELECT CalisanID,Ad,Soyad FROM Calisanlar”;
OleDbConnection cn = new OleDbConnection(connectionString);
OleDbCommand com = new OleDbCommand(strSelect, cn);
OleDbDataAdapter da = new OleDbDataAdapter(com);
DataSet ds = new DataSet();
if (com.Connection.State == System.Data.ConnectionState.Closed)
com.Connection.Open();
da.Fill(ds);
Liste.DisplayMember = “Ad”;
Liste.ValueMember = “CalisanID”;
Liste.DataSource = ds.Tables[0];
}
public static void KomboDetay(ComboBox Kombom, ComboBox cinsiyet, TextBox ad, TextBox soyad, TextBox yas, PictureBox resim)
{
OleDbConnection cn = new OleDbConnection(connectionString);
string strSelect = “Select Ad,Soyad,Yas,Resim,Cinsiyet From Calisanlar Where CalisanID=@ID“;
OleDbCommand com = new OleDbCommand(strSelect, cn);
int calisanID = int.Parse(Kombom.SelectedValue.ToString());
com.Parameters.AddWithValue(“@ID”, calisanID);
if (com.Connection.State == ConnectionState.Closed)
com.Connection.Open();
OleDbDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
bool dogruMu = dr.HasRows ? true : false;
if (dogruMu)
{
while (dr.Read())
{
ad.Text = dr["Ad"].ToString();
soyad.Text = dr["Soyad"].ToString();
yas.Text = dr["Yas"].ToString();
byte[] resimDizi = (byte[])dr["Resim"];
MemoryStream ms = new MemoryStream(resimDizi);
resim.Image = Image.FromStream(ms);
cinsiyet.Text = Convert.ToString((Cinsiyet)Enum.Parse(typeof(Cinsiyet),dr["Cinsiyet"].ToString()));
}
}
dr.Close();
}
}
}
Evet Buradaki Kodlarımızda Tamam Olduğuna Göre Artık Form Tarafı Kodlarımıza Geçebiliriz.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Access_Resim_Kaydetmek
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
CalisanE calis = new CalisanE();
calis.Ad = txtAd.Text;
calis.Soyad = txtSoyad.Text;
calis.Yas = Convert.ToInt32(txtYas.Text);
calis.Resin = pictureBox1.Image;
calis.Cinsiyet = (Cinsiyet)Enum.Parse(typeof(Cinsiyet),comboBox2.Text.ToString());
CalisanF.CalisanKaydet(calis);
MessageBox.Show(“Başarılı Kayıt !”);
}
catch (Exception hata)
{
MessageBox.Show(“Genel Bir Hata Oluştu !” + hata.Message);
}
CalisanF.CalisanGetir(comboBox1);
comboBox1.SelectedIndex = comboBox1.Items.Count – 1;
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = “Sadece Resimler (.jpg.jpeg.bmp.png.gif)|*.jpg;*.jpeg;*.bmp;*.png;*.gif;”;
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(ofd.FileName);
}
}
private void Form1_Load(object sender, EventArgs e)
{
string[] elemanlar = Enum.GetNames(typeof(Cinsiyet));
comboBox2.Items.AddRange(elemanlar);
CalisanF.CalisanGetir(comboBox1);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
CalisanF.KomboDetay(comboBox1, comboBox2, txtAd, txtSoyad, txtYas, pictureBox1);
}
private void button3_Click(object sender, EventArgs e)
{
comboBox1.Text = “”;
comboBox2.Text = “”;
txtAd.Text = “”;
txtSoyad.Text = “”;
txtYas.Text = “”;
pictureBox1.Image = null;
}
}
}
Artık Projemizi Derleyip Sonucunu Görebiliriz.Aşağıdaki Gibi Bir Görüntü Bizi Bekliyor Olacak.

NOT : Resimlerimizi Veritabanına Kaydederken Byte[] Dizisi Olarak Kaydettik,Ve Geri Alırken’de Byte[] Dizisi Olarak Geri Aldık.
Bay,Bayan Uygulaması için Enum Kullandık Enumun Var Sayılan Değeri Int’dir Ama Biz Byte Olarak Ele Aldık Ekstradan Bellekte,
Yer Kaplamasın Diye.
Evet Arkadaşlar Bu Makalemizin’de Sonuna Gelmiş Olduk Bir Sonraki Makalemizde Görüşmek Üzere Sağlıcakla Kalın.
Giriş
Kategoriler
Arşivler
Takvim
Son YazIlar
- Mevlit Kandiliniz Mübarek Olsun
- Dünyanın en karanlık kahramanı yeniden sürüyor : HAYALET SÜRÜCÜ 2 İNTİKAM ATEŞİ
- Ya Ben İstanbul’u Alacağım, Ya İstanbul Beni ! : FETİH 1453
- Lost’un yaratıcısı J.J. Abrams’tan yeni dizi :ALCATRAZ
- Gurbetçi Rocky’nin komik hikayesi: BERLİN KAPLANI
- Uluslararası Çok Satan Üçlemeden :EJDERHA DÖVMELİ KIZ
- Hoşgeldin 2012
- Geri sayım başlasın ! : YILBAŞI GECESİ
- Plansız.Desteksiz.Seçimsiz :GÖREVİMİZ TEHLİKE 4
- Akıllı ve karizmatik dedektif Sherlock Holmes, en büyük düşmanı Profesör Moriarty’e karşı : Sherlock Holmes: Gölge Oyunları
Son Yorumlar
- Lost’un yaratıcısı J.J. Abrams’tan yeni dizi :ALCATRAZ için Güray
- Aşkın klişelerine karşı alaycı bir tavır takınmak,sizi gerçek aşka karşı kör mü yapar?: ARKADAŞTAN ÖTE için genceaydin
- Windows 7 Kurulum Sorunu (Çözümü) için Güray
- Windows 7 Kurulum Sorunu (Çözümü) için expert_-_man
- Müzik dinlemenin en hızlı ve en kolay yolu myFizy.com için Güray
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için Umut Sinan Şirin
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için gurultu12
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için Umut Sinan Şirin
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için gurultu12
- İhanet Noktası (Dan Brown) için pesimist
En Çok Okunanlar
- Eset Nod32 Antivirüs ekrn.exe Sorunu (Çözümü) - 20.895 kere okundu.
- Windows 7 Kurulum Sorunu (Çözümü) - 15.529 kere okundu.
- Skyfire 4.3.2.1_3001 Hatası (Symbian ve Windows Mobile Çözümü) - 13.084 kere okundu.
- Nokia 5800 Temaları - 11.868 kere okundu.
- Golden Retriever - 11.347 kere okundu.
- Kilyos - 9.628 kere okundu.
- Şemsiye Tarihçesi - 8.583 kere okundu.
- “o” an fotoğrafları - 7.273 kere okundu.
- Prag - 6.752 kere okundu.
- Nokia 5800 Programlar 1 - 5.872 kere okundu.
- IPhone 2 Çıktı ve Satışta.. - 5.169 kere okundu.
- Barış Manço - 4.935 kere okundu.
- Sigarayı İlk Kim Keşfetti? - 4.925 kere okundu.
- BİSİKLET - 4.590 kere okundu.
- Windows XP’nin Ölüm Tarihi Uzatıldı - 4.325 kere okundu.
Etiket Bulutu
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.


Bu Yazı 1.524 kere okundu.