none
arama RRS feed

  • Soru

  • mysql veritabanımda arama yapmak istiyorum şu şekilde olacak birden fazla tabloya bağlanıp textboxta geçen herhangi bir kelimeyi yada o kelimeye yakın olsada olur,bulursa ... işlemini yaptırcam  biraz daha detay vermek gerekirse a tablosuna bağlandı bir kolon seçti ve 4-5 satırlık bir metin var kolonda bu metnin içinde aranan kelime geçiyormu geçmiyormu nasıl anlarım ? biraz araştırdım like ile karşılaştım ama birisi yazıda performans sorunu olduğunu dile getirmişti.

    İlgi için teşekkürler.

    • Düzenleyen NScoder54 22 Mart 2016 Salı 18:51
    22 Mart 2016 Salı 18:51

Yanıtlar

  • Parametresiz sorgu kullanmayın! Ayrıca arkadaşın verdiği sorgu eşitse diyor. Sizin istediğiniz içinde geçen. Bu durumda o sorgu işinize yaramaz. Like kullanacaksınız. Yazdığınız sorguya göre performansı iyileştirebilirsiniz sorun değil o kadar.

    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
    23 Mart 2016 Çarşamba 13:30
  • mesela firmanın önsözünde"mutfak gereçleri"  diye bir cümle geçiyo aramaya "gereç" yazınca çıkması lazım lazım derken şart değil ama bu şekilde olsa daha güzel bir ziyaretçi deneyimi olur buda like kullanarak mümkün anladığım kadarıyla
    Evet Where ColumnName Like '%gereç%' şeklinde yapmanız gerek.

    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
    23 Mart 2016 Çarşamba 14:12
  • Bu sekilde deneyebilirsiniz.

    String aranacak;
        void Page_Load(object sender, EventArgs e)
        {
            aranacak = this.TextBox1.Text;
        }
     
        void BilgileriGetir()
        {
            MySqlConnection baglanti = new MySqlConnection();
            MySqlCommand komut = new MySqlCommand();
            MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
            DataSet ds = new DataSet();
            String baglanticumlesi, sorgu;
     
            baglanticumlesi = "Server=localhost;User Id=root; Password=PASSWORDHERE; Database=DATABASENAMEHERE; Pooling=false"; //server adresini, kullanici adini, id, password ve database bilgilerini yaziniz
            sorgu = "SELECT * FROM TABLENAME WHERE CLOUMNAME="+aranacak;    // tablo adini ve kolon adini yaziniz
     
            baglanti.ConnectionString = baglanticumlesi;
            komut.Connection = baglanti;
            komut.CommandText = sorgu;
            komut.CommandType = CommandType.Text;
            dtAdapter.SelectCommand = komut;
            dtAdapter.Fill(ds);
     
            GridView1.DataSource = ds;
            GridView1.DataBind();
     
            dtAdapter = null;
            baglanti.Close();
            baglanti = null;
     
        }
         
        protected void Button1_Click(object sender, EventArgs e)
        {
            BilgileriGetir();
        }
        protected void GridView1_DataBound(object sender, GridViewRowEventArgs e)
        {
            Label Label2 = (Label)(e.Row.FindControl("Label2"));
            if (Label2 != null)
            {
                Label2.Text = (string)DataBinder.Eval(e.Row.DataItem, "CLOUMNAME"); // kolon adini yazin
            }
        }


    Birinin cevabı size yardımcı oldu ise, lütfen "Yanıt Olarak Öner" veya "Yanıt Olarak İşaretle" olarak isaretlemeyi ve Oy vermeyi unutmayınız. Burada sağlanan tüm görüşler, kişiseldir ve Microsoft'un konumunu temsil etmemektedir. Tüm bilgiler hazır olarak temin edilmektedir ve herhangi bir garanti vermemektedir.

    23 Mart 2016 Çarşamba 10:31
    Moderatör

Tüm Yanıtlar

  • Bu sekilde deneyebilirsiniz.

    String aranacak;
        void Page_Load(object sender, EventArgs e)
        {
            aranacak = this.TextBox1.Text;
        }
     
        void BilgileriGetir()
        {
            MySqlConnection baglanti = new MySqlConnection();
            MySqlCommand komut = new MySqlCommand();
            MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
            DataSet ds = new DataSet();
            String baglanticumlesi, sorgu;
     
            baglanticumlesi = "Server=localhost;User Id=root; Password=PASSWORDHERE; Database=DATABASENAMEHERE; Pooling=false"; //server adresini, kullanici adini, id, password ve database bilgilerini yaziniz
            sorgu = "SELECT * FROM TABLENAME WHERE CLOUMNAME="+aranacak;    // tablo adini ve kolon adini yaziniz
     
            baglanti.ConnectionString = baglanticumlesi;
            komut.Connection = baglanti;
            komut.CommandText = sorgu;
            komut.CommandType = CommandType.Text;
            dtAdapter.SelectCommand = komut;
            dtAdapter.Fill(ds);
     
            GridView1.DataSource = ds;
            GridView1.DataBind();
     
            dtAdapter = null;
            baglanti.Close();
            baglanti = null;
     
        }
         
        protected void Button1_Click(object sender, EventArgs e)
        {
            BilgileriGetir();
        }
        protected void GridView1_DataBound(object sender, GridViewRowEventArgs e)
        {
            Label Label2 = (Label)(e.Row.FindControl("Label2"));
            if (Label2 != null)
            {
                Label2.Text = (string)DataBinder.Eval(e.Row.DataItem, "CLOUMNAME"); // kolon adini yazin
            }
        }


    Birinin cevabı size yardımcı oldu ise, lütfen "Yanıt Olarak Öner" veya "Yanıt Olarak İşaretle" olarak isaretlemeyi ve Oy vermeyi unutmayınız. Burada sağlanan tüm görüşler, kişiseldir ve Microsoft'un konumunu temsil etmemektedir. Tüm bilgiler hazır olarak temin edilmektedir ve herhangi bir garanti vermemektedir.

    23 Mart 2016 Çarşamba 10:31
    Moderatör
  • çok güzel bit cevap teşekkür ederim emeğin için,en kısa zamanda deneyeceğim
    23 Mart 2016 Çarşamba 11:18
  • Parametresiz sorgu kullanmayın! Ayrıca arkadaşın verdiği sorgu eşitse diyor. Sizin istediğiniz içinde geçen. Bu durumda o sorgu işinize yaramaz. Like kullanacaksınız. Yazdığınız sorguya göre performansı iyileştirebilirsiniz sorun değil o kadar.

    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
    23 Mart 2016 Çarşamba 13:30
  • mesela firmanın önsözünde"mutfak gereçleri"  diye bir cümle geçiyo aramaya "gereç" yazınca çıkması lazım lazım derken şart değil ama bu şekilde olsa daha güzel bir ziyaretçi deneyimi olur buda like kullanarak mümkün anladığım kadarıyla
    23 Mart 2016 Çarşamba 13:52
  • mesela firmanın önsözünde"mutfak gereçleri"  diye bir cümle geçiyo aramaya "gereç" yazınca çıkması lazım lazım derken şart değil ama bu şekilde olsa daha güzel bir ziyaretçi deneyimi olur buda like kullanarak mümkün anladığım kadarıyla
    Evet Where ColumnName Like '%gereç%' şeklinde yapmanız gerek.

    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
    23 Mart 2016 Çarşamba 14:12
  • Full Text Search konusuna da bakın. Belki istediğinize daha yakın bir sonuç verir.
    23 Mart 2016 Çarşamba 15:41
  • teşekkürler,
    23 Mart 2016 Çarşamba 15:49