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 Authors_9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable tablo;
private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection konn = new OleDbConnection(@"Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Users\Cagatay\Desktop\Authors.mdb");
string sql = "select * from Authors";
OleDbCommand komut = new OleDbCommand(sql, konn);
tablo = new DataTable();
DataColumn sutun0 = new DataColumn("Sıra. No", Type.GetType("System.Int32"));
DataColumn sutun1 = new DataColumn("isim", Type.GetType("System.String"));
DataColumn sutun2 = new DataColumn("yıl", Type.GetType("System.Int32"));
DataColumn sutun3 = new DataColumn("ID", Type.GetType("System.String"));
DataColumn sutun4 = new DataColumn("yaş", Type.GetType("System.Int32"));
sutun0.AutoIncrement = true;
sutun0.AutoIncrementSeed = 1;
sutun0.AutoIncrementStep = 1;
sutun0.ReadOnly = true;
tablo.Columns.Add(sutun0);
tablo.Columns.Add(sutun1);
tablo.Columns.Add(sutun2);
tablo.Columns.Add(sutun3);
tablo.Columns.Add(sutun4);
tablo.PrimaryKey = new DataColumn[] {sutun3};
konn.Open();
OleDbDataReader oku = komut.ExecuteReader();
DataRow drow;
while (oku.Read())
{
drow = tablo.NewRow();
drow[1] = oku[0];
drow[2] = oku[1];
drow[3] = oku[2];
tablo.Rows.Add(drow);
}
oku.Close();
konn.Close();
this.dataGridView1.DataSource = tablo;
tablo.ColumnChanged += new DataColumnChangeEventHandler(tablo_ColumnChanged);
}
void tablo_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
if (e.Column == tablo.Columns[2])
{
e.Row[4] = DateTime.Now.Year - Convert.ToInt32(e.ProposedValue);
}
}
}
}
Çalıştıkatan sonra form görüntüsü:
Yukarıdaki kodlar ADO.NET ile ilgili, çalıştığım kitaptan örnek bir proje fakat yaş sütununa verileri yazması gerekirken yukarıdaki formda görüldüğü gibi boş geliyor.Yardımcı olursanız sevinirim çünkü hatayı bulamadım.