none
removecurrent RRS feed

  • Soru

  •         //private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
            //{
            //    var result = MessageBox.Show("Kayıt Silinecek Emin misin?", "UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
            //    if (result == DialogResult.Yes)
            //        ürünGruplarıBindingSource.RemoveCurrent();
    
    
            //
    bu kod neden veri tabanındaki satırı silmez data gridteki satır siliniyor ama veri tabanı silinmiyor ancak update yaparsam siliniyor
     ürünGruplarıTableAdapter.Update(dataSetMain.ÜrünGrupları);
    2. soru sadece bu satır neden tekbasına update yapmıyor bunları ekleyince yapıyor
     Validate();
     ürünGruplarıBindingSource.EndEdit()
    3.soru bu kod neden filtre yapmaz
     ürünGruplarıBindingSource.Filter= string.Format("Ad like '%{0}%'",textBoxSearch.Text)
    bu yapar
    ürünGruplarıBindingSource.Filter = $"Ad like '*{textBoxSearch.Text}*'";

    2 Aralık 2020 Çarşamba 16:23

Yanıtlar

  •         //private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
            //{
            //    var result = MessageBox.Show("Kayıt Silinecek Emin misin?", "UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
            //    if (result == DialogResult.Yes)
            //        ürünGruplarıBindingSource.RemoveCurrent();

            //bu kod neden veri tabanındaki satırı silmez data gridteki satır siliniyor ama veri tabanı silinmiyor ancak update yaparsam siliniyor
    ürünGruplarıTableAdapter.Update(dataSetMain.ÜrünGrupları);

    Cevap :

    BindingSource, bir veri bağlama türüdür. 
    BindingSource'u veri kaynağına (datasource) ve formdaki denetimleri de bindingsource'a bağlayarak gezinme, sıralama, filtreleme ve güncelleme de dahil, verilerle tüm işlemlerimizi gerçekleştirebiliriz.
    RemoveCurrent() komutunu kullandığınızda kayıt bindingsource içerisinden ve bağlı denetimden(datagrid) siliniyor. Fakat update etmezseniz bu işlem veri tabanına yansımaz.

    __________________________________________________________________________
    2. soru sadece bu satır neden tekbasına update yapmıyor bunları ekleyince yapıyor
     Validate();
     ürünGruplarıBindingSource.EndEdit()

    Cevap :

    Validate, konteynırdaki kontrollere iki olay (System.Windows.Forms.Control.Validating ve System.Windows.Forms.Control.Validated) gönderir.
            Validate()' i çağırmak, İşlevin adına rağmen, başlık altında fazladan veri doğrulaması yapmaz. DataTable'nin TableAdapter.Update() çağrısından önce güncellenmesini sağlamak için kullanılır.
    Bunu, bazı kontroller (DataGridView gibi) listelerini güncellemediği için yapıyoruz. BindingSource.EndEdit() 'i çağırdığımızda denetimlerin düzenleme modunu sonlandırmasını ve liste verilerini güncellemesini sağlıyoruz. 

    ___________________________________________________________________

    3.soru bu kod neden filtre yapmaz
     ürünGruplarıBindingSource.Filter= string.Format("Ad like '%{0}%'",textBoxSearch.Text)

    bu yapar
    ürünGruplarıBindingSource.Filter = $"Ad like '*{textBoxSearch.Text}*'";


    Cevap :

    Örneğin; MS Access yüzde işareti (%) yerine yıldız işareti (*) ve alt çizgi (_) yerine soru işareti (?) Kullanır.
    yani kullandığınız veri tabanı tipine göre % yada * işareti hata verebilir. 

     

    Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz


    • Düzenleyen Ferit Gezgil 2 Aralık 2020 Çarşamba 17:27
    • Yanıt Olarak İşaretleyen Yasin AKAR 2 Aralık 2020 Çarşamba 18:26
    2 Aralık 2020 Çarşamba 17:25
  • Database -> Liste -> Grid

    Grid senin database'ini bilmez. O bir kolleksiyona bakar. Bir kaydı sildiğinde, güncellediğinde yada eklediğinde olay kolleksiyonda olur.
    TableAdapter ise (adı üstünde) bunları database'e adapte eder yani tüm işlemleri tek seferde database'e gönderir.

    Eğer listeden çıkardığın anda db'dende silmek istiyorsan;

    if (result == DialogResult.Yes)
    {
        ürünGruplarıBindingSource.RemoveCurrent();
        ürünGuruplarıTableAdapter.Update(dataSetMain.ÜrünGrupları);
    }
    
    //yada daha güzeli TableAdapterManager eklediysen
      
    if (result == DialogResult.Yes)
    {
        ürünGruplarıBindingSource.RemoveCurrent();
        tableAdapterManager1.UpdateAll(dataSetMain);
    }


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    2 Aralık 2020 Çarşamba 17:27
    Moderatör

Tüm Yanıtlar

  •         //private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
            //{
            //    var result = MessageBox.Show("Kayıt Silinecek Emin misin?", "UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
            //    if (result == DialogResult.Yes)
            //        ürünGruplarıBindingSource.RemoveCurrent();

            //bu kod neden veri tabanındaki satırı silmez data gridteki satır siliniyor ama veri tabanı silinmiyor ancak update yaparsam siliniyor
    ürünGruplarıTableAdapter.Update(dataSetMain.ÜrünGrupları);

    Cevap :

    BindingSource, bir veri bağlama türüdür. 
    BindingSource'u veri kaynağına (datasource) ve formdaki denetimleri de bindingsource'a bağlayarak gezinme, sıralama, filtreleme ve güncelleme de dahil, verilerle tüm işlemlerimizi gerçekleştirebiliriz.
    RemoveCurrent() komutunu kullandığınızda kayıt bindingsource içerisinden ve bağlı denetimden(datagrid) siliniyor. Fakat update etmezseniz bu işlem veri tabanına yansımaz.

    __________________________________________________________________________
    2. soru sadece bu satır neden tekbasına update yapmıyor bunları ekleyince yapıyor
     Validate();
     ürünGruplarıBindingSource.EndEdit()

    Cevap :

    Validate, konteynırdaki kontrollere iki olay (System.Windows.Forms.Control.Validating ve System.Windows.Forms.Control.Validated) gönderir.
            Validate()' i çağırmak, İşlevin adına rağmen, başlık altında fazladan veri doğrulaması yapmaz. DataTable'nin TableAdapter.Update() çağrısından önce güncellenmesini sağlamak için kullanılır.
    Bunu, bazı kontroller (DataGridView gibi) listelerini güncellemediği için yapıyoruz. BindingSource.EndEdit() 'i çağırdığımızda denetimlerin düzenleme modunu sonlandırmasını ve liste verilerini güncellemesini sağlıyoruz. 

    ___________________________________________________________________

    3.soru bu kod neden filtre yapmaz
     ürünGruplarıBindingSource.Filter= string.Format("Ad like '%{0}%'",textBoxSearch.Text)

    bu yapar
    ürünGruplarıBindingSource.Filter = $"Ad like '*{textBoxSearch.Text}*'";


    Cevap :

    Örneğin; MS Access yüzde işareti (%) yerine yıldız işareti (*) ve alt çizgi (_) yerine soru işareti (?) Kullanır.
    yani kullandığınız veri tabanı tipine göre % yada * işareti hata verebilir. 

     

    Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz


    • Düzenleyen Ferit Gezgil 2 Aralık 2020 Çarşamba 17:27
    • Yanıt Olarak İşaretleyen Yasin AKAR 2 Aralık 2020 Çarşamba 18:26
    2 Aralık 2020 Çarşamba 17:25
  • Database -> Liste -> Grid

    Grid senin database'ini bilmez. O bir kolleksiyona bakar. Bir kaydı sildiğinde, güncellediğinde yada eklediğinde olay kolleksiyonda olur.
    TableAdapter ise (adı üstünde) bunları database'e adapte eder yani tüm işlemleri tek seferde database'e gönderir.

    Eğer listeden çıkardığın anda db'dende silmek istiyorsan;

    if (result == DialogResult.Yes)
    {
        ürünGruplarıBindingSource.RemoveCurrent();
        ürünGuruplarıTableAdapter.Update(dataSetMain.ÜrünGrupları);
    }
    
    //yada daha güzeli TableAdapterManager eklediysen
      
    if (result == DialogResult.Yes)
    {
        ürünGruplarıBindingSource.RemoveCurrent();
        tableAdapterManager1.UpdateAll(dataSetMain);
    }


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    2 Aralık 2020 Çarşamba 17:27
    Moderatör