Forum

DataGridView'de tek...
 
Bildirimler
Hepsini Temizle

DataGridView'de tek bir hücre yerine tüm satır odaklama

10 Yazılar
2 Üyeler
0 Reactions
996 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 
Merhaba Arkadaşlar
 
Başlıktandan anlaşılacağı gibi mesala butonuma bastığımda "textbox" um da bulunan string ifadeyi 2. stunumun bütün satırlarında aramasını istiyorum
 
Yanlış kodlama ama genede örnek olarak yazayım (burda sadece seçmiş oldugum satır ve stuna bakıyor)    
          
 if ((dataGridView1[dataGridView1.CurrentRow.Index,2].Value.ToString().Trim() == TextBpx.Text))
{
Olaylar
 
Teşekkürler ...
 
Gönderildi : 01/12/2010 04:26

(@AhmetRende)
Gönderiler: 137
Estimable Member
 

şunu netleştirelim;

Bir sütünda ki tüm satırlarda mı arama yapmak istiyorsunuz yoksa bir satırdaki tüm stünlarda mı?

 
Gönderildi : 01/12/2010 11:42

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Bir sütünda ki tüm satırlarda

 
Gönderildi : 01/12/2010 18:41

(@AhmetRende)
Gönderiler: 137
Estimable Member
 

Hocam iş yerinde visual studiom yok. Test edemicem Ama şöyle birşey yapabilirsin.

Gridi bir datatable içine kopyala. Ve foreach ile tüm satırlarda dön. foreach döngüsü şu şekilde olacak hatırladığım kadarıyla;

 foreach (DataRow dr in datatable.Rows)
 {
      dr["KolonAdi"].ToString().Contains("aranacak");
 }

Böylece tüm satırlarda sadece belirttiğin sütununda arama yapmiş olacaksın.

 
Gönderildi : 02/12/2010 10:54

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Hocam şu şekilde yapmaya calıştım

foreach (DataGridViewRow row in dataGridView1.Rows)

                {

                    if ((string)row.Cells[2].Value == txtTurkce.Text)

                    {

                        MessageBox.Show("Bu Kelime Bulunmaktadır !");

                    }

                    else

                    {

                        DGEkle();

                        DGBaglanti();

                    }

                } 

 

Ama yemedi çünkü döngü sonlanmıyor ve sürekli dönüyor

Break filan koydum o zamanda 1. döngü 1 defa dönüyor ve duruyor

  Yapamadım

 
Gönderildi : 02/12/2010 22:48

(@AhmetRende)
Gönderiler: 137
Estimable Member
 

bu kodda hemde foreachle sonsuz döngü olamazki.

forech mantıgına aykırı zaten. Tüm rowlardan sonra scopetan çıkar.

kodun dogru gibi gozukuyor. ama test edemiyorum şu an için. breakpointle tekrardan durup bakman gerekebilir foreach içine girdiginde ne geliyor diye.

 
Gönderildi : 02/12/2010 23:09

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Haklısınız sonsuz kelimesi yanlış oluyor

demek istediğim forech de her row index için dönüyor bu durum da her seferinde if else yapısı çalışıyor ve textbox a yazdığım kelimeyi row sayısı kadar tabloya yazıyor "dbEkle=burda access tabloma ekleme komutlarım var) 

umarım anlata bilmişimdir

(dbbaglanti=datagridwieve tabloyu cagıran komutlarım) 

 
Gönderildi : 03/12/2010 01:55

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Ben genede yapmak istediğim şeyi yazayım belki daha güzel bir yol vardır..

2 textboxum var butona basınca access tabloma bu 2 textboxta yazan kelimeleri(türkçe ing sözlük gibi mesala) 1.textboxu 2.stuna ,2.textboxu 3. stuna(1.stunda İD var) kaydedecek ve  eğer texboxlara yazılan kelimeler daha önceden kaydedilmişse uyarı verecek

işte bu 

 
Gönderildi : 03/12/2010 01:59

(@AhmetRende)
Gönderiler: 137
Estimable Member
 

Verinin daha önce eklenip eklenmediğini şöylede kontrol edebilirsiniz.

textboxlara girilin degerleri alın. Sonra veritabanından;

select * from TABLO where  kolon2=txt1 and kolon3=txt3

 Bu sana bir değer döndürürse o kayıtlar daha önce girilmiştir. Yani bunun sonucunu bool bir değere atıp. ona göre işlemlerini yapabilirsin.

 
Gönderildi : 03/12/2010 10:52

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Hocam dediğiniz gibi sql sorgulamayla gidince çözüldü

Ben genede yazayım herzaman ki gibi belki birinin işine yarar

ayrıca daha pratik bir yöntem varsa  öğrenmek isterim 

 

try

                {

                    string Yol = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=kelimelerim.mdb;Persist Security Info=False; ";

                    OleDbConnection baglantı = new OleDbConnection(Yol);

                    baglantı.Open();

                    OleDbDataAdapter adaptor = new OleDbDataAdapter("select * from kelimelerim where Turkce='" + txtTurkce.Text + "' or Ingilizce='" + txtIngilizce.Text + "'", baglantı);

                    DataSet myDS = new DataSet();

                    adaptor.Fill(myDS);

                    dataGridView1.DataSource = myDS.Tables[0];

                    if (myDS.Tables[0].Rows.Count == 0)

                    {

                        DGEkle();//Bu yöntem accesse eklemek için 

                        DGBaglanti();//bu ise tabloyu datagridwieve en sonhalini çağırıyor

                    }

                    else 

                    {

                        MessageBox.Show("Bu Kelime Bulunmaktadır");

                        dataGridView1.DataSource = myDS.Tables[0];

                    }

                    baglantı.Close();

                    

                    

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                } 

 
Gönderildi : 03/12/2010 16:18

Paylaş: