none
C# BAŞKA FORMDAKİ DATAGRİDVİEW'DEN BAŞKA FORMDAKİ DATAGRİDVİEWE KOLON AKTARMA RRS feed

  • Soru

  • Merhaba;

    Sorumu yine dilim döndüğünce anlatmaya çalışacağım.

    Yapmak istediğim işlem şöyle Form1 de bekleyen siparişler diye bir butonum var buna tıkladığımda Form2 Açılıyor ve burda Datagridview im var bu datagridviewimde şu şekilde;

    Burdan Satıra çift tıklayıp Form1'de ki dataGridView2 ye Stok Kodu , Stok Adı , Miktar , B.Fiyatı ve Tutar Kolonlarımı aktarmak istiyorum. Form1 de ki dataGridView2 Şu şekilde;

    Bazı Kolonlarımı TextBoxlara aktarıyorum. Ordaki Kod kısmımda şu şekilde ;

            private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                SiparisSevk SS = (SiparisSevk)Application.OpenForms["SiparisSevk"];
                if (dataGridView1.SelectedRows.Count > 0)
                {
                    SS.siparisno.Text = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();
                    SS.carikod.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
                    SS.cariadi.Text = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
                    Close();
                }
            }
    Nasıl bir düzenleme yapmam gerekiyor. Değerli yorumlarınızı bekliyorum. Şimdiden teşekkür ederim.

    31 Ekim 2018 Çarşamba 09:24

Tüm Yanıtlar

  • Öncelikle datagridin satırlarına sütunlarına doğrudan erişmeniz doğru değil.

    Şöyle yapıcaksınız ;

    1-Datagridde listelediğiniz veri için bir sınıf oluşturacaksınız.Atıyorum ;

    public class ornek {
     public string stokkodu {get;set;}
     public string stokadi {get;set;}
     ...vsvs...
    
    
    }

    Sonra datagride bir binding source atayacaksınız , bu bindingsource'un datasource özelliğine ise oluşturduğunuz sınıfın türünden nesneler tutabilen bir liste oluşturacaksınız.

    List<ornek> abc = new list<ornek> gibi,

    Sonra siz datagrdin click eventinde hangi satıra tıklandığını alacaksınız(int) bu değer ile listenin indexini kullanarak nesneyi çekeceksiniz.

    ornek orneknesne = abc[gelen int ];

    Sonra bu orneknesne objesini diğer datagridin datasource une ekleyeceksiniz.

    İşte her şey bu kadar. 

    NOT:tam olarak nasıl bir dizayn yapıyorsunuz bilmiyorum ancak istisnai durumları da düşünmenizi öneririm , örneğin bir elektrik kesintisi oldu diyelim bu veriler datagridde kalmalı mı kaybolsa bir şey olur mu ? eğer böyle durumlar sizin için sıkıntı oluyorsa işlemleri sürekli veritabanı ile koordine yapmanızı tavsiye ederim.

    Kolay gelsin...

    31 Ekim 2018 Çarşamba 15:50