Linq ve Join

İki tablo üzerinde sorgulama yapacaksanız o zaman Join komutunu muhakkak (başka hamaliye yöntemlerde vardır onları boşverin) kullanmanız gerekecektir. Aşağıdaki uygulamada önce iki tablo ardından bu iki tablodaki birleştirilmiş değerler gösterilmektedir.

using System.Data.SqlClient;//Eklemeyi Unutmayın

namespace DataTableveLinq
{
public partial class Form4 : Form
{
DataTable Tablo, Tablo2;
private void Form4_Load(object sender, EventArgs e)
{
SqlConnectionStringBuilder Ayarlar = new SqlConnectionStringBuilder();
Ayarlar.InitialCatalog = “GaziData”;
Ayarlar.DataSource = “Win-czmsc2bhjlw”;
Ayarlar.IntegratedSecurity = true;
SqlConnection YeniBaglanti = new SqlConnection(Ayarlar.ConnectionString);
YeniBaglanti.Open();
SqlCommand Uygula = new SqlCommand();
Uygula.Connection = YeniBaglanti;
Uygula.CommandText = “Select * From Ogrenciler”;
//
Tablo = new DataTable();
Tablo.Load(Uygula.ExecuteReader());
dataGridView1.DataSource = Tablo;
//
SqlCommand Uygula2 = new SqlCommand();
Uygula.Connection = YeniBaglanti;
Uygula.CommandText = “Select * From NotDurumu”;
//
Tablo2 = new DataTable();
Tablo2.Load(Uygula.ExecuteReader());
dataGridView2.DataSource = Tablo2;
}

private void button1_Click(object sender, EventArgs e)
{
var Sonuc = from NotTablosu in Tablo2.AsEnumerable()
join OgrTablo in Tablo.AsEnumerable() on
NotTablosu.Field(“TCNO”) equals OgrTablo.Field(“TCNO”)
select new
{
TC_NO= NotTablosu.Field(“TCNO”),
ADI_SOYADI = OgrTablo.Field(“ADISOYADI”),
DERS_ADI= NotTablosu.Field(“DERSADI”),
};
dataGridView3.DataSource = Sonuc.ToList();
}
}
}