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.

[code lang=”csharp”]
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

}
[/code]

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.

[code lang=”csharp”]
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;

}

}

}
[/code]

 

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.

[code lang=”csharp”]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

[/code]

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

Tıklayınız

Yorumlar 28

  • 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

  • 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.

  • 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 …..

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

  • @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 ……..

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

  • 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

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

  • @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

  • proje isteklerinizi gorselprogram@gmail.com adresine mail atını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 ?

  • 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..

  • 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?

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

  • 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.

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

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

  • 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.

  • 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?

  • iyi günler 3 günden belli aynı soruyu soruyorum ve cevap alamıyorum..
    combobox içerisindeki texti seçtiğimde datagridwiev1 ve 2 değişecek bunun kodlarını gönderirseniz sevinirim lütfen…

  • accessden verileri alacak

  • kubra :
    Aşağıdaki linkteki program işini görebilir.
    http://www.gorselprogramlama.com/market-satis-takip-programi-c-net/

  • merhabalar ben bir proje yapıyorum öğrenci yoklama sistemi RFID ile. Sorum ise şu rfid kartın id si ile veri tabanında arama yapmasını ve datagridview de bunu listelemesini istiyorum.yani textboxa her girilen rfid id si farklı olacağından bunları alt alta datagridviewe nasıl yansıtabilirim?

  • Merhaba..datagridlerde hep son satır( başında * olan )hep boş geliyo ben o gelmesin istiyorum çünkü datagrid deki kayıt sayısını fln da almak istediğimde hep o satırı da sayıyo dahil ediyo ne yapmak gerek..acil lazım da kısa sürede dönüş yaparsanız çok sevinirim…şimdiden teşekkürler

  • Allah razı olsun

  • @aysesule
    datagridin properties’inden allowuseraddrows özelliğini false yapman lazım

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir