Veri tabanındaki kayıtları dataGridView’de Gösterme C# Ders 70

Veri tabanındaki kayıtları dataGridView’de Gösterme C# Ders 70

Daha fazla bilgi için : www.gorselprogramlama.com

Veri tabanındaki kayıtları dataGridView’de Gösterme :C#.Net direkt access bilgilerini görüntüleyemiyoruz.Bunun için ilk olarak c#.nette veri tabanını regüle eden bir adaptöre ve c#.nette kayıtları barındıran  sanal bir veri tabanına ihtiyacımız var.

OleDbDataAdapter sınıfı : Şarta uyan kayıtları belirtilen veri tabanından c#.nete regüle görevi görür.

Kullanımı: OleDbDataAdapter adtr=new OleDbDataAdapter(sql kodu,bağlantı adı)

Fill Metodu : Belirtilen veri tabanındaki tabloyu datasete doldurur.

adtr.Fill(dataset ismi,tablo ismi)

Dataset sınıfı : Sanal bir veri tabanı oluşturur.

Ör:

Dataset dtst=new Dataset();

Tables Özelliği: Datasetteki belirtilen tabloyu alır.

Ör:  dtst.Tables[“ogrbil”];

dataGridView Nesnesi: Veri kaynağı belirtilen kayıtları gösterir.Toolbox’tan ekleyebilirsiniz.

DataSource Özelliği: Veri kaynağını öğrenmek için kullanılır.

Kullanımı :

dataGridView1.DataSource=dataset ismi ve tablosu

Örnek :Aşağıdaki veri tabanını access 2007’de oluşturun.

Yukarıdaki kayıtları girin.Şimdi kayıtları dataGridView’de gösteren kodları yazalım. Toolbox’tan forma dataGridView ekleyin.

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 veritabani_baglanti

{

public partial class Form1 : Form

{

public Form1()

{//Daha fazla bilgi için : www.gorselprogramlama.com

InitializeComponent();

}

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=data.accdb");

DataSet dtst = new DataSet();

OleDbDataAdapter adtr = new OleDbDataAdapter();

private void Form1_Load(object sender, EventArgs e)

{

bag.Open();

OleDbDataAdapter adtr = new OleDbDataAdapter("select * From ogrbil", bag);

adtr.Fill(dtst,"ogrbil");

dataGridView1.DataSource = dtst.Tables["ogrbil"];

adtr.Dispose();

bag.Close();

}

}//Daha fazla bilgi için : www.gorselprogramlama.com

}

Yukarıdaki select * From ogrbil sql kodu ogrbil tablosundaki tüm kayıtları seç demektir.

**** dataGridView deki kayıtların sütun başlıkları accessdeki  alan isimlerini gösterir.Sütunların başlıklarını değiştirebiliriz.Bunun için dataGridView’in HeaderText özelliği kullanılır.

Ör : dataGridView1.Columns[0].HeaderText = “Adı”;  —>o. kolonun yazısını Adı yap .

Ayrıca sütunların genişliğinide değiştirebiliriz.

Ör:  dataGridView1.Columns[0].Width = 40;

Örnek:Yukrıdaki örnekte bulunan  datagridView’in  sütun başlıklarını ve genişliklerini değiştirelim.

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 veritabani_baglanti

{//Daha fazla bilgi için : www.gorselprogramlama.com

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=data.accdb");

DataSet dtst = new DataSet();

OleDbDataAdapter adtr = new OleDbDataAdapter();

private void Form1_Load(object sender, EventArgs e)

{//Daha fazla bilgi için : www.gorselprogramlama.com

bag.Open();

OleDbDataAdapter adtr = new OleDbDataAdapter("select * From ogrbil", bag);

adtr.Fill(dtst,"ogrbil");

dataGridView1.DataSource = dtst.Tables["ogrbil"];

adtr.Dispose();

bag.Close();
dataGridView1.Columns[0].HeaderText = "No";

dataGridView1.Columns[1].HeaderText = "Adı";

dataGridView1.Columns[2].HeaderText = "Soyadı";

dataGridView1.Columns[3].HeaderText = "Sınıfı";

dataGridView1.Columns[0].Width = 40;

dataGridView1.Columns[3].Width = 50;

}

}

}

DataTable Sınıfı: Sanal tablo oluşturmak için kullanılır.Dataset sanal veritabanı oluştururken , DataTable sanal tablo oluşturur.

Örnek : Yukarıdaki örneği DataTable kullanarak hazırlayalım.

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 veritabani_baglanti

{

public partial class Form1 : Form

{

public Form1()

{//Daha fazla bilgi için : www.gorselprogramlama.com

InitializeComponent();

}

OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=data.accdb");

DataTable tablo = new DataTable();

OleDbDataAdapter adtr = new OleDbDataAdapter();

private void Form1_Load(object sender, EventArgs e)

{

bag.Open();

OleDbDataAdapter adtr = new OleDbDataAdapter("select * From ogrbil", bag);

adtr.Fill(tablo);

dataGridView1.DataSource = tablo;

adtr.Dispose();

bag.Close();

}

}

}//Daha fazla bilgi için : www.gorselprogramlama.com

Dersin videolu anlatımı ve anlatımda yapılan projeyi indirmek için

Tıklayınız







Rica: Sitemizin Google'da Ön Sıralarda Çıkması İçin Lütfen Alttaki Google+ Butonuna Tıklayınız , Sayfamızı Facebookta Beğeniniz veya yazıları Twitter,Facebookta paylaşınız.
Paylaş :
  1. Mustafa
    Mar 11th, 2011 at 18:50 | #1

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Linq
    Imports System.Text
    Imports System.Windows.Forms
    Imports System.Data.OleDb
    Namespace veritabani_baglanti

    Public Class Form1
    Inherits Form

    Private bag As OleDbConnection = New OleDbConnection(“Provider=Microsoft.Jet.Oledb.4.0; Data Source=data.accdb”)

    Private dtst As DataSet = New DataSet

    Private adtr As OleDbDataAdapter = New OleDbDataAdapter

    Public Sub New()
    MyBase.New()
    InitializeComponent()
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    bag.Open()
    Dim adtr As OleDbDataAdapter = New OleDbDataAdapter(“select * From ogrbil”, bag)
    adtr.Fill(dtst, “ogrbil”)
    DataGridView1.DataSource = dtst.Tables(“ogrbil”)
    adtr.Dispose()
    bag.Close()
    End Sub

    yazdım çalıştı ama Imports System.Linq bunda Hata var sanırım ……
    altı çizik çünkü napıcaz acill yardım

  2. admin
    Mar 11th, 2011 at 22:18 | #2

    jet 4.0 demişsin ve data.accdb veritabanı kullanmışsın. 2007 yani uzantısı acccdb için ACE.OLEDB.12.0 , 2003 yani uzantısı mdb için Jet.OLEDB.4.0 yazıyoruz.

  3. Rotasız
    Nis 13th, 2011 at 15:46 | #3

    Admin Bunu Biraz Daha Geliştirebilirsin ÖRN:Kisinin Kullanıcı Adını,Ve Şİfresini İsteyen Bir Form Arayüzü Yapsan Daha İyi Olmazmıydı Bu Tür ŞEyler COK BASİT ACCESS’E BAGLANTI KODUNU EZBELERSEN GERİSİ KENDİLİGİNDEN GELİYOR ZATEN …..

  4. admin
    Nis 13th, 2011 at 15:58 | #4

    Bizim amacımız zaten yol göstermek.Geliştirmek size bağlı.

  5. Rotasız
    Nis 18th, 2011 at 12:25 | #5

    @admin
    Admin Yol Göstermeniz Cok Güzel Vede Bu Konu Hakkında’da Size Bir SoruSorcam BiliyorsunuzKi Cogu Ögrenci Kodları Ezber Yaparak Programlamayı Ögrenmek İstiyor Bende Öyle Yaptım Bir Ara Tabi Ama Ezberle Olmuyor Sizce Ne Yapmak LAzım Programlamayı Tam Anlamıyla KAvraya Bİlmek İçin Cogu Kişiler Böyle Yapıyor Sizden CEvap Bekliycem ……..

  6. admin
    Nis 18th, 2011 at 12:54 | #6

    Mantığını anladıktan sonra ezberlenmesede olur.

  7. abdullahbltc
    Nis 25th, 2011 at 12:13 | #7

    Selamun aleykum.Ben Sınav tarihi adında bir program yapıyorum.Acccessle veri bağlantısını yaptım ve oluşturduğum tabloyu datagridviewe ekledım.Yapmak istediğim şey:Tablodaki öğretmen adı sınav tarihi salon no , saatın ve ders adının birbirleriyle çakışmıcak şekide düzenlenmesi.Örneğin ik farklı i öğretmen aynı tarihte aynı saatte aynı salonda sınav yapamaz.ve bir öğretmen aynı derslerden aynı saatte ,tarihte ve farklı salonda sınav yapabilir ama aynı hoca farklı derslerden aynı saatte sınav yapamaz şeklindeki şartlara uyacak şekilde datagride kayıt eklemek istiyorum(bu şartlara uymassa mesaj şeklinde uyarı vermesi gerkiyor).Bununla iligili yardımcı olursanız sevinirim .teşekkürler

  8. Rotasız
    Nis 26th, 2011 at 07:29 | #8

    @abdullahbltc
    Abdullah Cok Güzel Bir Soru Sormussun KArdeşim DEstekliyorum SEni :D Ewt ADmin Böyle Bir ŞEy Yapabilirmisin Aslında Aklıma Bazı ŞEyler Geliyor Ama SEnin Düşüncerlerinide ÖGrenmek İSteriz ….

  9. Rotasız
    Nis 26th, 2011 at 07:31 | #9

    @admin
    Hadi Diyelim Ki MAntığı Anlamadı Sil Baştan Yapamsı LAzım Cogu Kişi Ezber CEkiyor Ama #C Geçtigi Zaman Ne Olcak Onları Ezbelemesi İmkansız

  10. admin
    Nis 26th, 2011 at 22:51 | #10

    proje isteklerinizi gorselprogram@gmail.com adresine mail atınız.

  11. Rotasız
    Nis 28th, 2011 at 10:42 | #11

    @admin
    Admin Ben Sana Bir Sormuuştum Ama Hal CEvabını Alamadım Kişi PRogramlama MAntıgını Anlamadıysa Hep Ezberden Gidirsa Ne Yapaması LAzım Bir Yol Göster Bakalım Cogu Kişi Yazılıma Girdigi Zaman İlkte Kodları Her Zaman Ezber Ypamaya Calışır Bu Hataya Bende Düştüm Zamannında Soruma CEvap Vermeni Bekliyorm MÖAntıgı Anlamadıysa Ne Ypaması LAzım Yada Anlaması İçin Neler Yapamsı LAzım Ne Tür Bir Yol İzlemesi Gerkir ?

  12. serdar
    Eyl 25th, 2011 at 08:30 | #12

    ro

    Rotasız :
    @admin
    Admin Ben Sana Bir Sormuuştum Ama Hal CEvabını Alamadım Kişi PRogramlama MAntıgını Anlamadıysa Hep Ezberden Gidirsa Ne Yapaması LAzım Bir Yol Göster Bakalım Cogu Kişi Yazılıma Girdigi Zaman İlkte Kodları Her Zaman Ezber Ypamaya Calışır Bu Hataya Bende Düştüm Zamannında Soruma CEvap Vermeni Bekliyorm MÖAntıgı Anlamadıysa Ne Ypaması LAzım Yada Anlaması İçin Neler Yapamsı LAzım Ne Tür Bir Yol İzlemesi Gerkir ?

    rotasız C# zaten ilk olarak ezberden geçer ancak sen aynı konuları yada anlamadığın konuları hergün tekrarlarsan o ezberden çıkar ve tavsiyem karışık gelen kod bloklarını yada komutu sana hatırlatacak bir nesne yada bir şeyle onu bağla
    örneğin ben sürekli SQL deki truncate komutunu unuturdum lan neydi neydi derdim trunda ama gerisi neydi
    sonra televizyonda yaşlı bir kadının torunun kediyle oynadığını gördüm

    torun kedi
    trun cat
    oldu sana truncate :)

    yada

    örnek yukarı bakarsan
    dataadaptör fill ile dataseti doldurmaya yarar diyor yani bilgileri aracı kopru gibi bir şey

    sürekli bunu unutuyormusun ?
    bir kopru dusun bu senin dataadaptorun ne zaman bir kopru gorsen yada dusunsen aklına o gelcek o koprunun sonunda ise bir tane FİL VAR :)
    ve o fil hortumuyla DATA LARI tutup hemen yan tarafa SET kurar gibi diziyor dataset oluşuyor
    sana komik gelsede bu gerçek bir şey hafıza tekniklerini araştırırsan yardımcı olur..

  13. mlk
    Ara 23rd, 2011 at 16:32 | #13

    güzel cvp :)@admin

  14. Vusal
    Mar 27th, 2012 at 12:39 | #14

    OleDbConnection baglanti = new OleDbConnection(“Provider=Microsoft.Jet.OleDb.4.0;Data Source=DataBase.mdb”);
    OleDbCommand ekle = new OleDbCommand();
    DataTable tablo = new DataTable();

    OleDbDataAdapter adtr = new OleDbDataAdapter();

    DataSet dtst = new DataSet();

    public void listele()
    {
    baglanti.Open();

    tablo.Clear();

    OleDbDataAdapter adtr = new OleDbDataAdapter(“select * From nihat”, baglanti);

    adtr.Fill(tablo);

    dataGridView1.DataSource = tablo;

    adtr.Dispose();

    baglanti.Close();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    try
    {
    baglanti.Open();
    ekle.Connection = baglanti;
    ekle.CommandText = “INSERT INTO nihat (ad,soyad,qeyd) VALUES (‘” + textBox1.Text + “‘,'” + textBox2.Text + “‘,'” + textBox3.Text + “‘)”;
    ekle.ExecuteNonQuery();
    baglanti.Close();
    MessageBox.Show(“eklendi”);
    }
    catch (Exception ex)
    {
    MessageBox.Show(“Hata:”+ex.ToString());
    }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    listele();

    dataGridView1.Columns[0].HeaderText = “id”;
    dataGridView1.Columns[1].HeaderText = “ad”;
    dataGridView1.Columns[2].HeaderText = “soyad”;
    dataGridView1.Columns[3].HeaderText = “qeyd”;

    }

    // Hocam burada dataGridView1.form her achilisinda calismiyor.Ekledikden sonra formu kapadim acdikdan sonra datagridde gorunuyor. Nerede yanlis yapdim bilemiyorum. aradim ama bulamadim Yardimchi olursunuz?

  15. admin
    Mar 29th, 2012 at 14:24 | #15

    Kodlarda herhangi bir sorun yok.Çalışması gerekiyor.Tekrar yazıp dene.Veya üsteki videoyu izle.

  16. BekraHayrNester
    Tem 7th, 2013 at 20:33 | #16

    Ellerinize Sağlık Kodlar sağlıklı fakat size bir sorum olacak ben Ms-sql ‘e resim ve bilgiler ekledim(Personel Bilgileri) bi sayfada Datagridview koydum ve bütün verileri oraya çekiyorum güncelleme yapacam fakat resim gelmiyor onun yerine x geliyor yani bozuk işareti neden olabilir. Yardımcı olabilirmisiniz.

  17. Ağu 4th, 2013 at 21:13 | #17

    çok işime yaradı teşekkürler.

  18. admin
    Ağu 12th, 2013 at 09:37 | #18

    BekraHayrNester:
    Resmin yolunda sıkıntı olabilir.Resimleri bin-debug klasöürüne al.Öyle dene.

  19. nupelda
    Haz 27th, 2014 at 13:38 | #19

    arkadaşlar Access veri tabanında bilgileri toplayıp sonra c# . nette gösterecem acaba nasıl yapabilirim. direk visualda toplayabiliyorum ancak acceste toplayıp yapamıyorum yardımcı olur musunuz.

  20. Ara 15th, 2014 at 16:33 | #20

    Merhaba benimde bir sorum olacak;
    ben dolu olan sütun ve satırı renklendirmek istiyorum yani bana istediğim satırın dolu olduğu uyarısını renkli şekilde versin ama ne yazık ki bu konu hakkında bilgi bulamadım. Yardımcı olur musunuz?

  21. admin
    Ara 15th, 2014 at 16:47 | #21

Yorum Yazın ...

XHTML: Bu Etiketleri Kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>