none
C#-da AutoCompleteTextBox kullanma ile ilgili RRS feed

  • Genel Tartışma

  • Iyi akşamlar. C#-da AutoCompleteTextBox kullanıyorum. Aşağıdakı gibi.

      private void AutoCompleteText()
            {
                textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
                AutoCompleteStringCollection col = new AutoCompleteStringCollection();
                using (SqlConnection con = new SqlConnection(LocationData.ConnectionString()))
                {
                    SqlCommand cmd = new SqlCommand("select * from Products", con);
                    con.Open();
                    SqlDataReader rd = cmd.ExecuteReader();
                    while (rd.Read())
                    {
                        col.Add(rd["ProductName"].ToString());
                    }
                    rd.Close();
                    con.Close();
                }
                textBox1.AutoCompleteCustomSource = col;
    
    
            }

    Bununla ilgili 2 sorum var.

    1) Textboxsa bu şekilde ne kadarlık veri aktara bilirim? Her hangi bir sınır varmı?

    2) Bu yöntemle textboxda arama yaptığımda textboxsa girdiyim kelmelerin soldan sağa aktarıyor dimi? Ama bana lazım olan like % kullanmakdır (ya da onun gibi bir şey) .Yani mesela textboxsa aktarılan verilerin içerisinde "Ahmed" adlı bir kişi varsa ben texboxsa "A" harfini yazdığımda "A" harfı ile başlayan verilerin hepsi geliyor ama benim istediyim "m" harfı yazdığımda  da "Ahmed" gelsin çünki "Ahmed" sözündede "m" harfı var.  Sqldeki liki %% komutu gibi. Bunu nasıl yapa bilirim?

    30 Temmuz 2016 Cumartesi 21:48

Tüm Yanıtlar

  • textbox değil de listBox'a çeksen ve sırasıyla( item olarak) listbox' a ekletsen daha mantıklı olmaz mı veya benzer bir  envanter ile (datagridview olur vs)? bir de tavsiyem datagridview kullanman, datareader yerine datatable ile çeksen ve dt isimli bir datatable kullandığını bir de dv isimli dataview varsayarsak;

    dataGridView.DataSource=dv.DefaultView=dt.DefaultView; dersek veritabanından çektiğin veriyi sanal bir dataview' e aktarmış olursun hemde datagrid de olur.

    sonra bir textbox ve onun textChanged eventini kullanarak arattırma yapabilirsin,şöyle ki

    dv.RowFilter="   ";//buraya sql sorgundaki "where" kısmından sonrasını yazabilirsin senin istediğin gibi yani

    "ProductName like '"%"+textBox.Text+"%"'"; gibi.ama like komutuna senin istediğn gibi esnek değil en azından benim bildiğim kadarıyla.yani "ahmed" arattırmak için "a" dan sonra "m","e"  veya "d" ye basarsan ahmed gelmez çünkü sırada "h" var ve sen bunu yazmaz isen onu getirmez. birkaç farklı kullanımı mevcut. internette sql like command/sql like komutu diye aratırsan birkaç farklı kullanım örneği bulabilirsin.

    30 Temmuz 2016 Cumartesi 22:23