Hata Nerede?

Kapalı Hesap (153535)
29-07-2011, 14:45   |  #1  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

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.

  

ramcixx
29-07-2011, 15:35   |  #2  
ramcixx avatarı
Yıllanmış Üye
Teşekkür Sayısı: 0
198 mesaj
Kayıt Tarihi:Kayıt: Nis 2011

ovv bu ne nedir yawss :)

Kapalı Hesap (153535)
29-07-2011, 19:01   |  #3  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009
Alıntı: ramcixx  
ovv bu ne nedir yawss :)
Çok da uzun bir kod değil şaşılacak ne var?Ayrıca amacım kötü değil ama yardımcı olamayacaksan neden mesaj yazıyorsun?

soulmy
29-07-2011, 19:48   |  #4  
soulmy avatarı
Yıllanmış Üye
Teşekkür Sayısı: 2
1,939 mesaj
Kayıt Tarihi:Kayıt: Kas 2006

Kırmızıyla işaretlediğimde yerde 3 değer döndürmüşsün. Bu olabilir belki


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);
            }
           
        }
    }
}

Kapalı Hesap (153535)
29-07-2011, 19:55   |  #5  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009
Alıntı: soulmy  
Kırmızıyla işaretlediğimde yerde 3 değer döndürmüşsün. Bu olabilir belki


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);
            }
           
        }
    }
}

Hayır orada bir hata yok.Benzer bir örnek daha vardı onda sorunsuz çalışmıştı.

soulmy
29-07-2011, 20:27   |  #6  
soulmy avatarı
Yıllanmış Üye
Teşekkür Sayısı: 2
1,939 mesaj
Kayıt Tarihi:Kayıt: Kas 2006

While döngüsü içinde 3 değer döndürmüşsün. Tabloda da 4 sütun var. Belki onunla alakalı olabilir diye düşünmüştüm. php biliyorum ama programcılığı hiç bilmiyorum. Yine de yardımcı olmaya çalıştım.

Kolay gelsin. Bilen birileri mutlaka yardımcı olacaktır. ;)

Kapalı Hesap (153535)
29-07-2011, 20:35   |  #7  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Tabloda aslıında 5 tane sutün var.Veritabanından aldığı isim,yıl ve ID değerleri, yaş bilgisini ise yıl alanından alıyor.İlki de zaten(Sıra. No) program kodlanırken oluşturuluyor.Yine de teşekkürler.

Kapalı Hesap (153535)
16-11-2012, 23:42   |  #8  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Yaklaşık 1.5 yıl sonra sorunu çözdüm, tabi 1.5 yıldır uğraşmıyorum 

ProFCJ
25-11-2012, 22:29   |  #9  
Üye
Teşekkür Sayısı: 1
78 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Türkçe karakter kullanma büyük bir hata örnek tablo adların şöyle olmalı "SiraNo, yil, yas" gibi gibi. Kullandığın Türkçe karakterler sana büyük sıkıntı çıkarır.

Kapalı Hesap (153535)
26-11-2012, 03:18   |  #10  
OP Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009
Alıntı: ProFCJ  
Türkçe karakter kullanma büyük bir hata örnek tablo adların şöyle olmalı "SiraNo, yil, yas" gibi gibi. Kullandığın Türkçe karakterler sana büyük sıkıntı çıkarır.
Ben zaten kullanmıyorum kitaptaki örnek öyleydi sadece.