DataGrid güncelleme sorunu

Başlatan t2, 30 Ekim 2013, 23:45:28

t2

           
Başkasının yazdığı bir programı güncellemeye çalışıyorum. c# bilgim az. DataGrid  hücrelerini tıklayıp elle değiştiriyorum. Bu tamamlandığında  yeniden hesap yapılıp başka hücreler değişiyor. Excel benzeri durum.

Elle yapılan işlemi otomatik yapmak için, aşağıdaki program vasıtasıyla yaptırmaya çalışıyorum. sonra değişen hücreler renkleniyor.

            dataGrid[sutn, satr].Value =  deger;

            dataGrid[sutn, satr].Style.BackColor = Color.Red;



Sorun şu ki hücreler görüntüde değişmiş olsa da aslında değişmemiş. çünkü, değiştirilmeyen  diğer hücreler hesaplanmış değil.  Hatta bunu görüp bazı hücreyi elle değiştirince yukarıdaki görüntüde değişen hücreler de orijinal halıne geliyor.

Program ile yaptığım bu değişimi nasıl kalıcı hale getirebilirim?


muhittin_kaplan

Yanlış Anlıyorsam Düzeltin.

DataGrid de bilgiyi değiştiriyorsunuz, güzel ama başka bir işlem yaptığınızda yada prog kapatıp açtığınızda eski değerler tekrar mı geliyor

t2

#2
programı kapatınca geri gelmesi sorun değil. fakat datasource denen yere kaydolmuyor galiba. ortada veritabanı da yok. program txt dosyadan gridi kendisi dolduruyor.

Ben ise hücreyi değiştirdim datanın aslı da değişsin istiyorum. kaydedip kaydetmemesi sorun değil . datasource kendiliğinden güncellenmez mi? elle yapınca oluyor programla yapınca olmuyor.


ogrid.DataSource. ? bundan sonra bir şey yazmam gerek. ama ne?

muhittin_kaplan

#3
yok hocam dataset.update gibi bir işlem çağrılması gerekir. (VT varsa)

ortada veritabanı olmalı, ama bu access vb olmayabilir dataset yada datatable xml dosyaya dataset.tables(0).writexml gibi bir yöntemle xml dosyaya grid in içeriğini yazabilir

mesaj birleştirme:: 30 Ekim 2013, 23:54:46

Alıntı yapılan: t2 - 30 Ekim 2013, 23:49:15
programı kapatınca geri gelmesi sorun değil. fakat datasource denen yere kaydolmuyor galiba. ortada veritabanı da yok. program txt dosyadan gridi kendisi dolduruyor.

Ben ise hücreyi değiştirdim datanın aslı da değişsin istiyorum. kaydedip kaydetmemesi sorun değil . datasource kendiliğinden güncellenmez mi? elle yapınca oluyor programla yapınca olmuyor.


ogrid.DataSource. ? bundan sonra bir şey yazmam gerek. ama ne?
hocam ben hızlıca vb de örnek hazırlayayım.

mesaj birleştirme:: 31 Ekim 2013, 00:03:38

yada hocam eğer sorun değilse bana yollayın bakayım.

mesaj birleştirme:: 31 Ekim 2013, 00:07:21

hocam

Me.DataGridView1.DataSource = DataSet1.Tables(0)

gibi bir yere bağlantı yapmalısınız bu

Me.DataGridView1.DataSource = Me.DataTable1 da olabilir

yada tablenin ismide olabilir.

t2

#4
DataGrid 'in  CellEndEdit olayında bir kod var. Elle düzetme yapıldığında bu çalışıyor ve tüm gerekli işleri yapıyor. Ben program ile yaptığımda bu olay çalışmıyor sorun budan kaynaklanıyor galiba.

Bu olayı programla tetiklemeye çalışsam nasıl tetiklerim?  fakat CellEndEdit  olayımı çağırsam bu sefer bundan önceki olaylar gerçekleşmediğinden yine işe yaramaz. Aynen elle düzeltilmiş gibi yaptırtabilsem yeterli olacak.

bu tetiklenen olayı, anlamaya çalışıp kendi olayıma eklesem iyi olur . biraz çalışaım. başka kısa yol vardır diye düşünmüştüm.

muhittin_kaplan

hocam gridin DataGridView1_CellLeave olayı var, grid hücresinden ayrıldığınızda tetiklenir.
ayrıca DataGridView1_RowLeave olayıda bir satırı yazıp satırdan ayrıldığınızda tetiklenir.

buralar işinize yarayabilir.

t2

Olayın detayını anlamadan, yukarıda bahsettiğim şekilde diğer olayı kendi kodum ile birleştirdim.
Sonuçta    benim yaptığım iş satır ve sütun ve değer kısmını kodla belirlemektir. Diğer kısmı aynen elle yapılmış gibi oldu.