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
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 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..
güzel cvp 🙂@admin
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?
merve:
Aşağıdaki linki inceleyin.
http://www.gorselprogramlama.com/iki-tarih-arasindaki-farka-gore-datagridview-satirini-renklendir-csharp/
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