DataTable ın kolonlardan oluştuğunu daha önce yazmıştık. Bir DataTable a kolon eklemin birden fazla yolu vardır. Aşağıda buna dair bir örnek bulunmaktadır. Formunuza bir tane buton bir tane datagridview ekledikten sonra butonu çift tıklayıp aşağıdaki kodları yazın.
// DataTable ımızı tanımlıyoruz
DataTable dtIsimler =
new DataTable();
// DataTable ımıza kolon eklemek için DataColumn sınıfını kullanıyoruz.
DataColumn alan = new
DataColumn();
alan.ColumnName =
"adi";
alan.AllowDBNull =
true;
alan.MaxLength = 20;
alan.DefaultValue =
"Ali";
alan.DataType =
System.Type.GetType("System.String");
// DataColumn sınıfından elde ettiğimiz alanı DataTable ımıza ekliyoruz.
dtIsimler.Columns.Add(alan);
alan = new
DataColumn("soyisim");
alan.AllowDBNull =
true;
alan.MaxLength = 20;
alan.DefaultValue =
"Boş";
alan.DataType =
System.Type.GetType("System.String");
dtIsimler.Columns.Add(alan);
alan = new
DataColumn("Yasi", typeof(int));
alan.AllowDBNull =
false;
alan.DefaultValue = 0;
dtIsimler.Columns.Add(alan);
alan = new
DataColumn("DYeri", typeof(string), "Bursa");
alan.AllowDBNull =
false;
dtIsimler.Columns.Add(alan);
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = dtIsimler;
DataColumn sınıfının 3 farklı şeklini kullanarak DataTable ımıza kolonları ekledik. Yukarıdaki işlemi şu şekilde de yapmamız mümkündür.
DataTable dtIsimler = new DataTable();
dtIsimler.Columns.Add("adi", typeof(string));
dtIsimler.Columns.Add("soyadi", typeof(string));
dtIsimler.Columns.Add("yasi", typeof(int));
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = dtIsimler;
Ancak bu şekilde tanımladığımızda bazı özellikleri belirleyemediğimizi görebiliriz. (MaxLength, DefaultValue gibi) Eğer bunlarıda belirlemek istersek;
DataTable dtIsimler = new DataTable();
dtIsimler.Columns.Add("adi", typeof(string));
dtIsimler.Columns.Add("soyadi", typeof(string));
dtIsimler.Columns.Add("yasi", typeof(int));
dtIsimler.Columns.Add("dyeri", typeof(string));
dtIsimler.Columns[0].MaxLength = 20; //0 ilk kolonu 1 ikinci kolonu temsil eder.
dtIsimler.Columns[1].MaxLength = 20;
dtIsimler.Columns[3].DefaultValue = "Ankara";
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = dtIsimler;
DataColumn da kullanılabilecek alan tipleri ise aşağıdaki gibidir.
Boolean
Byte
Char
DateTime
Decimal
Double
Int16
Int32
Int64
SByte
Single
String
TimeSpan
UInt16
UInt32
UInt64
Arrays o