En iyi yanıtlayıcılar
arama

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
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.
- Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
-
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.
- Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
-
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.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 24 Mart 2016 Perşembe 09:52
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Mart 2016 Pazartesi 08:49
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.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 24 Mart 2016 Perşembe 09:52
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Mart 2016 Pazartesi 08:49
-
-
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.
- Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
-
-
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.
- Yanıt Olarak İşaretleyen NScoder54 23 Mart 2016 Çarşamba 14:42
-
-