23 Mayıs 2013 Perşembe

Ağ kablosu nasıl hazırlanır?


Bir ağ kablosu hazırlamadan önce kablonun hangi amaçla kullanılacağına karar vermemiz gerekiyor. Kabloyu bir bilgisayar ile herhangi bir ağ cihazı arasında kullanacaksak düz bağlantı yapmalıyız. Eğer kabloyu iki bilgisayar arasında kullanacaksak (kablonun bir ucu A bilgisayarına takılı iken diğer ucuda B bilgisayarına takılacak ise) cross (çapraz) kablo kullanmalıyız. Yazımın devamında düz bağlantı renkleri, cross (çapraz) bağlantı renk sırası ve bu kabloları hazırlarken kullanacağımız rj45 konnektör, utp cat5 kablo ve sıkma pensesi hakkında açıklamaları bulabilirsiniz.
Cross kablo yada düz kablo kullanacakta olsak kullanacağımız malzemeler değişmeyecektir :
  1. Yeterli uzunlukta UTP Cat5 kablo
  2. Utp kablonun her iki ucuna takacağım Rj45 konnektör (tek seferde sorunsuz yaparım diyorsanız 2 tane yeterli)
  3. Rj45 konnektörleri kabloya çakmak (yada takmak) için kablo sıkma pensesi.
Çapraz bağlantı ve düz bağlantı renklerini vermeden önce bu malzemeleri çok kısa resimli olarak tanıtmak istiyorum.

1. UTP CAT5 KABLO

Bilgisayar ağlarında yaygın olarak kullanılan kablo tipi UTP kablodur. UTP kablolar belirli bir mesafede üzerinde taşıyabileceği veri miktarına göre cat1 den başlayarak cat7 ye kadar kategorilere ayrılır. Günümüzde neredeyse bütün bilgisayar ağlarında cat5 kablo kullanılır. 100 metreyi aşmayacak şekilde hazırlanan bir cat5 kablo 100Mbps’ lik veri taşıyabilir. Buda cat5 kablolar ile saniyede en fazla 100Mb veri aktarılabileceği anlamına gelir. Utp kablo içerisinde 8 adet renkli ince kablo bulunur. Hazırlayacağımız kablonun cross yada düz bağlantı olmasına göre bu 8 kablonun renk sırası farklılık gösterir.

2. RJ45 KONNEKTÖR

Utp Cat5 kablo içerisindeki kablolar doğru renk sırasıyla Rj45 konnektöre yerleştirilir. Bunun için Rj45 konnektör içerisinde 8 adet giriş vardır. Utp kablo içerisindeki 8 ince kablo bu girişlere doğru şekilde yerleştirilir. Bu yerleştirme işleminden önce kabloların uçları Rj45 konnektörün içerisindeki iletkenlere temas edecek kadar soyulur. Bu soyma işleminde kablo sıkma pensesinden faydalanabilirsiniz.

3. KABLO SIKMA PENSESİ

Yeteri kadar soyduğumuz ince kabloları doğru renk sırasıyla Rj45 konnektöre yerleştirdikten sonra yine aynı pense ile utp cat5 kablo ve Rj45 konnektörü sıkıştırıyoruz.
Kablo hazırlama işlemi sırasında kullanacağımız olmazsa olmaz olan 3 materyali tanıttıktan sonra kablolarımızdaki renk sıralarına geçiyoruz. İki kablo türü arasındaki farkı yazımın giriş kısmında vermiştim.

Düz Bağlantı Renk Sırası

Eğer hazırladığınız ağ kablosunu bir bilgisayardan bir ağ cihazına (modem, switch, hub vs.) bağlayacaksanız düz bağlantı kullanılmalıdır. Düz bağlantının özelliği kablonun her iki ucundada aynı renk sırasını kullanıyor olmamızdır. Bu renk sırasını uluslar arası standarda göre hazırlayabileceğiniz gibi her iki uçtaki renklerin sırasının aynı olması şartıyla istediğiniz bir sırayla da hazırlayabilirsiniz. Genel olarak kullanılan düz bağlantı renk sırası aşağıdaki gibidir. Resimdeki her iki uçtada renk sırasının aynı olduğuna dikkat ediniz.
Turuncu –Beyaz (TB)
Turuncu (T)
Yeşil – Beyaz (YB)
Mavi (M)
Mavi – Beyaz (MB)
Yeşil (Y)
Kahverengi – Beyaz (KB)
Kahverengi (K)

Cross (Çapraz Bağlantı Renk Sırası)

Çapraz Bağlantı Nedir? Cross Bağlantı Nasıl Hazırlanır?
Hazırlayacağınız ağ kablosunu iki bilgisayar arasında kullanacaksanız (arada hiçbir ağ cihazı bulunmadan, bir bilgisayardan diğerine takacaksanız) çapraz bağlantıyı tercih etmelisiniz. Bu durumda Ethernet kablonuzun bir ucunu düz bağlantıda renk sırasıyla hazırlarken diğer ucunda ise 1 ve 3. renkler ile 2 ve 6.renkler yer değiştirecek şekilde bağlamalısınız. Çapraz (cross) bağlantı renk dizilimi aşağıdaki gibi olmalıdır.
Kablonun 1.ucu Kablonun 2. ucu
Turuncu –Beyaz (TB) Yeşil-Beyaz (YB)
Turuncu (T) Yeşil (Y)
Yeşil – Beyaz (YB) Turuncu – Beyaz (TB)
Mavi (M) Mavi (M)
Mavi – Beyaz (MB) Mavi – Beyaz (MB)
Yeşil (Y) Turuncu (T)
Kahverengi – Beyaz (KB) Kahverengi – Beyaz (KB)
Kahverengi (K) Kahverengi (K)

22 Mayıs 2013 Çarşamba

VISUAL STUDIO KLAVYE KISAYOLLARI





Ctrl+K, Ctrl+D

Dökümanı düzenle



Ctrl+K, Ctrl+C

Seçili kodu yorum satırı (Comment) yap



Ctrl+K, Ctrl+U

Yorum satırı yapma işlemini geri al (Uncomment)



Ctrl+K, Ctrl+X

Hazır kod ekleme (Insert Snippet) seçeneklerini görüntüle



Ctrl+M

Kod blogunu (nodunu) aç (kapalıysa), kapat (açıksa)



Ctrl+M, Ctrl+O

Bütün kod bloglarını (nodları) kapat


Shift+F7

Designer görünümüne geç


F7

Kod görünümüne geç

F5

Hata ayıklama (Debug) işlemini başlat



Ctrl+F5

Hata ayıklama yapmadan başlat

F11

Hata ayıklamada sonraki satıra geç


F10

Hata ayıklamada sonraki satıra (metotları takip etmeden) geç



Ctrl+Shift+F5

Yeniden başlat


Ctrl+F

Bul ve Değiştir (Find and Replace) ekranını aç

Ctrl+H

Değiştir (Replace) ekranını aç

F1

Seçili öğe için arama yap


F4

Properties (Özellikler) ekranını aç


Ctrl+Alt+S

Server Explorer’ı aç


Ctrl+Alt+L

Solution Explorer’ı aç


Ctrl+Alt+X

Toolbox’ı (Araçlar) aç

Ctrl+Shift+A

Add New Item (Projeye yeni bir dosya ekle ) penceresini aç

Shift+Alt+A

Add Existing Item (Projeye Visual Studio dosyası ekle) penceresini aç

Ctrl+Shift+B

Projeyi derle (Build)

Ctrl+N

Yeni bir dosya oluşturma penceresini aç

Ctrl+Shift+N

Yeni bir proje oluşturma penceresini aç


Ctrl+F4

Açık olan dosyayı kapat

Shift+Esc

Toolbox’ı (Araçlar) kapat

Ctrl+F6

Açık olan dosyalar arasında gez

Ctrl+Tab

Açık olan dosyalar arasında gezinme penceresini aç



Alt+Shift+F10

Kütüphaneyi referans olarak ekle


Alt+Shift+Enter

Tam ekran moduna geç

Aşağıda ekran görüntüsü bulunan Microsoft tarafından hazırlanmış olan Pdf formatındaki klavye kısayolları dosyaları da oldukça faydalı olacaktır.

Oracle 11g Database Yedek Script Örneği (Solaris)



export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_SID=[SIDNAME]
export ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_3
export ORACLE_BASE=/data/oracle/product/11.2.0/dbhome_3
$ORACLE_HOME/bin/exp SYSTEM/[SYSTEM KULLANICI ŞİFRESİ] file=/export/home/oracle/[DOSYA_ADI].dmp log=/export/home/oracle/[LOG_DOSYA_ADI].log owner=[KULLANICI_KODLARI] statistics=none

[ ] içerisinde belirtilen bilgiler sisteminze göre düzeltilerek .sh dökümanı olarak kaydedilir.  ve Solaris tabanlı sistemde çalıştırılarak DB Yedek .dmp dosyası oluşturulur.

21 Mayıs 2013 Salı

SQL KOMUTLAR


SQL KOMUTLAR
DISTINCT: Birbirinin ayni olan satırların listelenmemesi için bu ifade kullanılır
“select distinct uyeadi from uyeler”
BETWEEN: Kosul belirtirken iki deger arasini belirtmek için kullanilir. Örnek:
Yasi 30 ile 40 arasindaki isçilerin kayitlarini listelemek için
“select * from uyeler where yas between 30 and 40¨
LIKE: Eger aradigimiz kayitin bulunmasi için tam bir karsilastirma yapamiyorsak
“select * from uyeler where uyeadi like ’%a’”
IN: Kosul belirtirken kullaniriz. Mesela ismi netrobin, ali veya mehmet olan isçilerin
bilgilerini listelemek için.
“select * from uyeler where uyeadi in (’netrobin’,’ali’,’mehmet’ )”
SUM: Seçilen degerlerin toplamini bulur. Isçilerin aldigi toplam ücreti görmek için
“select sum(ucret ) from uyeler”
MAX, MIN, AVG: Verilen degerin en büyügünü, en küçügünü ve ortalamasini bulur.
MAX en büyük degeri, MIN en küçük degeri, AVG ise seçilen degerlerin ortalmasini bulur.
“select MAX(UCRET ), MIN(UCRET ), AVG(UCRET ) from uyeler where tarih>’01.01.1999’”
ORDER BY ASC: Tablodan seçtigimiz kayitlari alfabetik siralamak için kullanilir.
“select * from uyeler order by asc”
ORDER BY DESC: Tablodan seçtigimiz kayitlari son kayıt sırasına göre siralamak için kullanilir.
“select * from uyeler order by desc”
GROUP BY: Genelde istatistik amaçlar için kullanilir. Mesela hangi tarihte kaç isçinin ise
alindigini bulmak için.
ALIAS: Genelde tablonun veya kolonun adını başka bir şeymiş gibi değişirebiliriz.
Uyeler tablosundaki uyeadi kolonunun adını isim yaptık yani isim olarak çağırabiliriz.
“SELECT uyeadi AS isim FROM uyeler”
JOIN: Bazen iki yada daha fazla tablodan veri cekmemiz gerekebilir, bu gibi durumlarda bu
methodu kullanırız.
Birbiri ile ilişkilendirilmiş iki tablomuz var biri uyeler diğeride detaylar olsun.
İki tablodanda aynı anda sorgulama veya veri çekeceğiz. Uyeler tablosunda id=1 ise detaylar
tablosundaki karşılğı ise uyeno=1 olarak yapıyoruz.
“SELECT * FROM uyeler,detaylar WHERE uyeler.id=detaylar.uyeno”
INNER JOIN OLARAK
“SELECT * FROM uyeler INNER JOİN detaylar ON uyeler.id=detaylar.uyeno”
LEFT JOIN OLARAK
“SELECT * FROM uyeler LEFT JOİN detaylar ON uyeler.id=detaylar.uyeno”
UNION ve UNION ALL : Join methoduna benzer ama sadece aynı kolonlara sahip tabloları
birbirine bağlar. Uyeler ve Detylar tablosundaki uyeadlarını sorgular.
Select uyeadi from uyeler UNION Select uyeadi from detaylar”
Sadece UNION kullanırsak iki tabloa aynı isimler olsa bile tekrarlar.
UNION ALL kullanırsak iki tabloda aynı isimler olsa bile sadece tekini sorgular.
“Select uyeadi from uyeler UNION ALL Select uyeadi from detaylar”
SQL FONKSİYONLARI
sql kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir.
Fonksiyon sözdizimi kuruluşu;
SELECT fonksiyon(kolon ) FROM tablo
Fonksiyon tipleri;
sql fonksiyonları birkaç temel tip ve kategoriye sahiptir. Temel fonksiyon tipleri:
++ Aggregate (birleşik degerli ) fonksiyonlar
++ Scalar (tekil degerli ) fonksiyonlar
Aggregate (birleşik degerli ) fonksiyonlar
Bu tip fonksiyonlar birçok deger ile çalışır ama sonucu tek bir degerdir.
Bu fonksiyonların MS Access e uygun olanları:
AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar
COUNT(kolon ): Boş degerler haric, girilen kolondaki satır sayısını yollar
COUNT(* ): Verilen tablodaki satır sayısını yollar
FIRST(kolon ): girilen kolondaki ilk degeri yollar
LAST(kolon ): girilen kolondaki son degeri yollar
MAX(kolon ): girilen kolondaki en yuksek degeri yollar
MIN(kolon ): girilen kolondaki en dusuk degeri yollar
STDEV(kolon ): girilen kolondaki basit istatiksel standard sapma degerini yollar
STDEVP(kolon ): girilen kolondaki nüfus istatiksel standard sapma degerini yollar
SUM(kolon ): girilen kolondaki sayıların toplamını yollar
Bu fonksiyonların sql Server a uygun olanları:
AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar
BINARY_CHECKSUM: tablonun verilen satırındaki ikilik tabandaki checksum degerini yollar
CHECKSUM: tablonun verilen satırındaki checksum degerini yollar
CHECKSUM_AGG: boş degerler haricindeki verilerin checksum degerini yollar
COUNT(kolon ): Boş degerler haric, girilen kolondaki satır sayısını yollar
COUNT(* ): Verilen tablodaki satır sayısını yollar
COUNT(DISTINCT kolon ): Verilen tablodaki satır sayısını yollar, fakat cift veri bulunan satırları bir defa sayar
FIRST(kolon ): girilen kolondaki ilk degeri yollar
LAST(kolon ): girilen kolondaki son degeri yollar
MAX(kolon ): girilen kolondaki en yuksek degeri yollar
MIN(kolon ): girilen kolondaki en dusuk degeri yollar
STDEV(kolon ): girilen kolondaki basit istatiksel standard sapma degerini yollar
STDEVP(kolon ): girilen kolondaki nüfus istatiksel standard sapma degerini yollar
SUM(kolon ): girilen kolondaki sayıların toplamını yollar
Scalar (tekil degerli ) fonksiyonlar
Girilen degere gore bir deger ile calısır ve sonuc olarak bir deger yollar.
Bu fonksiyonların MS Access e uygun olanları:
UCASE(c ): bolgedeki karakterlerin hepsini buyuk yapar
LCASE(c ): bolgedeki karakterlerin hepsini kucuk yapar
MID(c,start[,end] ): yazı alanından karakterleri calıstırır
INSTR(c ): yazı alanından karakterleri gosterir
LEFT(c,karakterNumarasi ): text alanının girilen sayıya kadar olan kısmını yollar (soldan sayar )
RIGHT(c,number_of_char ): text alanının girilen sayıya kadar olan kısmını yollar (sagdan sayar )
ROUND(c,hassasiyet ): sayı alanını verilen hassasiyete gore yuvarlar
MOD(x,y ): bolme işleminde kalanı gosterir (mod işlemi yapar )
NOW( ): o anki sistem zamanını gosterir
FORMAT(c,format ): alanın gosterim biçimini degiştirir
DATEDIFF(d,birinciTarih,ikinciTarih ): tarih hesaplarını yapmak için kullanılır

SQL ALTER TABLE KOMUTU


Bazen mevcut tablomuzda değişiklik yapmamız gerekir. Var olan tabloya bir alan eklemek, var olan alanın adını, tipi ,boyutunu vs. değiştirmek gibi. Bu tür tablo düzenleme işlemleri için SQL’in “ALTER” komutunu kullanıyoruz. Bu makalemizde,SQL Alter komutu ile yapabileceğimiz işlemleri tek tek inceleyeceğiz. Öncelikle örnek olarak kullanabileceğimiz bir tablo oluşturuyoruz.Tablomuzun adı Personel.

Create scripti:

CREATE TABLE Personel
(
Id int,
Adi vharchar(50),
Soyadi vharchar(50),
DogumTarihi DateTime
)

Tabloya yeni kolon eklemek:

Mevcut tablomuza yeni bir alan eklemek için kullanılan genel ifade:
Click here to find out more!
ALTER TABLE Tablo_adı
ADD Alan_adı Alan_türü
Örnek olarak Personel tablomuza Doğum yeri için bir alan açalım:
Alter Table Personel
Add DogumYeri vharchar(50)
Eklediğimiz alana ait özellikleri daha da özelleştirebiliriz. Mesela Cinsiyet adında, tipi bit olan bir alan ekleyelim, boş olamasın, ve default değeri False olsun
Alter Table Personel
Add Cinsiyet Bit Not Null Default ((0))

Tabloya birden çok kolon eklemek:

Mevcut tablomuza tek seferde birden çok alan eklemek için genel ifade:
ALTER TABLE Tablo_adı
ADD (Alan_adı1 Alan_türü1, Alan_adı2 Alan_türü2, …)
Örnek olarak Personel tablomuza Tc Kimlik numarası ve SSK numarası için bir alan açalım:
Alter Table Personel
Add ( TCKimlikNo int not null, SSKNo int null)

Tabloya Primary Key eklemek:

Mevcut tablomuza bulunan bir alanı primary key yapmak için kullanılan genel ifade:
ALTER TABLE Tablo_adı
ADD PRIMARY KEY (Alan_adı)
Örnek olarak Personel tablomuza bulunan Id alanını Primary key yapalım:
Alter Table Personel
Add Primary Key (Id)
Mevcut tablomuza yeni bir alan ekleyip, primary key yapmak için kullanılan genel ifade:
ALTER TABLE Tablo_adı
ADD Alan_adı Not Null PRIMARY KEY
Örnek olarak Personel tablomuza ID2 adında bir alan ekleyip, Primary key yapalım:
Alter Table Personel
Add ID2 int Not Null IDENTITY(1,1) Primary Key
Tablodaki alanın Primary Key özelliğini silmek: Mevcut tablomuza bulunan primary key alanın bu özelliğini kaldırmak için kullanılan genel ifade:
ALTER TABLE Tablo_adı DROP CONSTRAINT Alan_adı
Örnek olarak Personel tablomuza bulunan Id alanının Primary key özelliğini kaldıralım:
Alter Table Personel Drop Constraint Id

Tablodaki kolonun adını değiştirmek:

Mevcut tablomuzdaki bir alanın adını değiştirmek için kullanılan genel ifade:

Oracle için:

ALTER TABLE Tablo_adı
CHANGE alan_adı_eski to alan_adı_yeni
Örnek olarak Personel tablomuza eklediğimiz “TCKimlikNo” alanının adını TcNo yapalım:
Alter Table Personel Change TCKimlikNo to TcNo

MySql için:

ALTER TABLE Tablo_adı RENAME COLUMN alan_adı_eski to alan_adı_yeni
Örnek olarak Personel tablomuza eklediğimiz “TCKimlikNo” alanının adını TcNo yapalım:
Alter Table Personel Rename Column TCKimlikNo to TcNo

Sql server için:

EXEC sp_rename ' Tablo_adı.[alan_adı_eski]', alan_adı_yeni, 'COLUMN'
Örnek olarak Personel tablomuza eklediğimiz “TCKimlikNo” alanının adını TcNo yapalım:
EXEC sp_rename Personel.[TCKimlikNo], TcNo ,'COLUMN'

Tablodaki kolona ait bilgileri değiştirmek:

Mevcut tablomuzda var olan bir alanın bilgilerini değiştirmek için kullanılşan genel ifade:
ALTER TABLE Tablo_adı ALTER COLUMN alan_adı alan_türü
Örnek olarak Personel tablomuza yukarda eklediğimiz SSK numarasının tipini varchar olarak değiştirelim:
Click here to find out more!
Alter Table Personel Alter Column SSKNo Varchar(20)
Bu komutu kullanarak alana ait ‘Allow Null’, yani boş bırakma özelliğini de değiştirebilirz. Örnek olarak doldurulması zorunlu yaptığımız TCKimlik Numarası nullable yapalım:
Alter Table Personel Alter Column TcNo int null

Tablodaki bir kolonu silmek:

Mevcut tablomuzda var olan bir alanı silmek için kullanılan genel ifade:
ALTER TABLE Tablo_adı DROP COLUMN alan_adı
Örnek olarak Personel tablomuza yukarda eklediğimiz SSK numarası alanını silelim:
Alter Table Personel Drop Column SSKNo
Tablomuzda bulunan bir alanı sildiğimizde, o alandaki bütün datalar silinir. Eğer sildiğimiz alan composite primary key ise, hem o alan silinir hem de tabloda yinelenen kayıtlar silinir.

Tablodaki bir kolona index eklemek /indexi kaldırmak: Mevcut tablomuzda var olan bir alana index eklemek için kullanılan genel ifade:

ALTER TABLE Tablo_adı ADD INDEX Index_Adı (alan_adı)
Örnek olarak Personel tablomuzda bulunan ‘Adi’ alanını indexleyelim:
Alter Table Personel Add index Index1 (Adi)
Mevcut tablomuzda var olan bir indexi silmek için kullanılan genel ifade:
ALTER TABLE Tablo_adı DROP INDEX Index_Adı
Örnek olarak Personel tablomuzda bulunan ‘Adi’ alanının indexini silelim:
Alter Table Personel Drop index Index1
Tablodaki bir kolona Constraint eklemek / Constrainti kaldırmak:
Mevcut tablomuzda var olan bir alana Constraint eklemek için kullanılan genel ifade:
ALTER TABLE Tablo_adı ADD CONSTRAINT constraint_Adi UNIQUE (alan_adı)
Örnek olarak Personel tablomuzda bulunan ‘TCNo’ alanına Constraint ekleyelim:
Alter Table Personel Add constraint constraint1 Unique (TCNo)
Mevcut tablomuzda var olan bir Constraint i silmek için kullanılan genel ifade:
ALTER TABLE Tablo_adı DROP CONSTRAINT constraint_Adi
Örnek olarak Personel tablomuzda bulunan ‘TCNo’ alanının constraintini silelim:
Alter Table Personel Drop constraint constraint1

Tablonun adını değiştirmek:

Mevcut tablomuzun adını değiştirmek için kullanılan genel ifade:
ALTER TABLE Tablo_adı_eski RENAMA TO Tablo_adı_yeni

20 Mayıs 2013 Pazartesi

C# Excel Sayfa (Sheet) içeriği görüntüleme

Excel dosya içerigi görüntüleme programı



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.Common;
using System.Data.OleDb;
namespace Get_Excel_Sheet_Names
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        ///


        /// For opening the dialog box to select the file
        ///

        ///
        ///
        private void btnBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            DialogResult dlgResult = dlg.ShowDialog();
            if (dlgResult == DialogResult.OK)
            {
                txtPath.Text = dlg.FileName;
            }
            comboBox1.DataSource = GetSheetNames(txtPath.Text);
        }
        ///


        /// Here we are reading the sheet and loading the sheet name in ddl
        ///

        ///
        ///
        public static List GetSheetNames(string path)
        {
            List sheets = new List();
            string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", path);
            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
            DbConnection connection = factory.CreateConnection();
            connection.ConnectionString = connectionString;
            connection.Open();
            DataTable tbl = connection.GetSchema("Tables");
            connection.Close();
            foreach (DataRow row in tbl.Rows)
            {
                string sheetName = (string)row["TABLE_NAME"];
                if (sheetName.EndsWith("$"))
                {
                    sheetName = sheetName.Substring(0, sheetName.Length - 1);
                }
                sheets.Add(sheetName);
            }
            return sheets;
        }
        ///



        /// For loading the selected sheet data
        ///

        ///
        ///
        private void btnLoadData_Click_1(object sender, EventArgs e)
        {
            if (System.IO.File.Exists(txtPath.Text))
            {
                string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", txtPath.Text);
                string query = String.Format("select * from [{0}$]", comboBox1.SelectedItem);
                OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
                DataSet dataSet = new DataSet();
                dataAdapter.Fill(dataSet);
                dataGridView1.DataSource = dataSet.Tables[0];
            }
            else
            {
                MessageBox.Show("No File is Selected");
            }
        }
    }
}




Foreach döngüsü

Foreach döngüsü genellikle bir dizinin tüm elemanlarına erişmek için kullanılır.
Temel yapı aşağıdaki gibidir;



 foreach("değişken" in "dizi, string vb.")
 {
  //İşlemler
 }



------------------------
    int toplam = 0;
    int[] sayilar = new int[5];
    sayilar[0] = 5;
    sayilar[1] = 5;
    sayilar[2] = 5;
    sayilar[3] = 5;
    sayilar[4] = 5;

    foreach (int x in sayilar)

    {
     toplam += x;
    }

    MesageBox.Show("Toplam Sayı"+toplam);

------------------------
Diğer Örnek :
Foreach döngüsü sadece dizilerle kullanılacak diye bir kural yoktur, mesela bir string değişkenin içindeki harfleri teker teker alabiliriz.Mesela istediğiniz bir stringi yukarıdan aşağıya yazdıralım


string umut = "Umut Coşkun";

    foreach (char x in umut)

    {
     MesageBox.Show(x);
    }


Diğer Örnek :
          //Butona basıldıgı anda form üzerinde tüm butonların arkaplanlarını kırmızı listboxlarınkini kırmızı yapan kod

            foreach (Control nesne in this.Controls)

            {
                
                if (nesne is Button)
                 { nesne.BackColor = Color.AntiqueWhite;}
                if( nesne is listBox)
                { nesne.BackColor = Color.Red;}
            }

Diğer Örnek :
 //listbox içerisindeki seçili her bir ogeyi diğer listboxa eklenmesi 


private void button4_Click(object sender, EventArgs e)
        {
           
            string text = "";
            foreach (var item in listBox1.SelectedItems)
            {

                text += item.ToString();

            }
            listBox2.Items.Add(text);
            //textBox1.Item = text;
        }