wmaraci reklam

C# Veritabanından 2 Farklı Comboboxa Göre Filtreleme

6 Mesajlar 1.603 Okunma
pst.net
wmaraci reklam

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 857
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)
Nerde Hata Yapıyorum.

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sistem1.mdb");
da = new OleDbDataAdapter("Select * from sistem1 where kac_kat like '" + comboBox1.SelectedValue + comboBox2.SelectedValue, con);
ds = new DataSet();
con.Open();
da.Fill(ds, "sistem");
comboBox2.DisplayMember = "kac_kat";
comboBox2.DataSource = da;
comboBox1.DisplayMember = "deprem";
comboBox1.DataSource = da;
dataGridView1.DataSource = ds.Tables["sistem"];
con.Close();
 

 

wmaraci
reklam

sefasaygi94 sefasaygi94 Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 19.12.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Yazılım Geliştiricisi
  • Konum Mersin
  • Ad Soyad S** S**
  • Mesajlar 38
  • Beğeniler 12 / 2
  • Ticaret 5, (%100)
Like kullanırken bir değişkeni iki parametreye atamaya çalışmışsın ondan olabilir .
 

 

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
Aldığınız hatayı paylaşır mısınız?

Sorguda hata var galiba.
 

 

technovenue.com

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 857
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)

ulas2016 adlı üyeden alıntı

Aldığınız hatayı paylaşır mısınız?

Sorguda hata var galiba.


System.Data.OleDb.OleDbException: ''kac_kat like '' sorgu ifadesi içindeki Dizede sözdizimi hatası'
 

 

wmaraci
Mersin evden eve nakliyat

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
Güvenlik açısından parametre kullanmanızı öneririm.

SQL Like Parametre kullanımı olarak araştırabilirsiniz.

EK olarak şurada çözülmüş bir sorun var;
https://social.msdn.microsoft.com/Forums/tr-TR/50184bf7-c8cb-49db-bcac-0171dfd144c9/sql-like-sorgusunda-parametre-kullanm?forum=aspnettr

Like kullanımında ve tırnak işaretlerinde hata var bu bariz fakat uzun süredir bu tarz sorgular yazmadığım için unuttum, bahsettiğim şekilde araştırabilirsiniz.
 

 

technovenue.com

nGinY nGinY PHP - C# Help Kit =) Kullanıcı
  • Üyelik 07.06.2014
  • Yaş/Cinsiyet 25 / E
  • Meslek Öğrenci
  • Konum Eskişehir
  • Ad Soyad E** Y**
  • Mesajlar 80
  • Beğeniler 7 / 17
  • Ticaret 3, (%100)
Test işlemini yaptığım kodların örneği aşağıdadır

da = new OleDbDataAdapter("Select * from sistem1 where kac_kat like '" + comboBox1.SelectedValue + comboBox2.SelectedValue, con);


siz burda bi comboboxun birleşiminden bir verimi mi almak istiyorsunuz
Örnek Veriyorum:


Siz bu komut ile ad soyadı ayrı ayrı aramak yerine EnginYenice varmı diyorsunuz.


Örnek Comboboxtan yazılan veri
bilgi_ad , bilgi_soyad ayrı ayrı alınan verilere göre sorgulama
Peki Ayrı ayrı nasıl sorgulama yapabiliriz ?


Bu işlemde 2 ayrı alandan aldığımız verilerde filtreleme yaptık

bilgi_adsoyad alanına göre filtreleme



Engin ve Yeniceyi Comboboxlardan Aldık Fakat Aramamızı bilgi_adsoyad bölümüne göre yaptık
peki boşluk nasıl oluştu sorguda comboboxlar arasına boşluk ekleyerek bu işlemi gerçekleştirdim
Burdaki filtreme bilgi_adsoyad alanındaki veriye göredir

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Combobox_Ile_Like
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection con;
OleDbDataAdapter da;
OleDbCommand cmd;
DataSet ds;



public void comboboxbir()
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=bilgiler.accdb");
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter("select * from bilgiler1", con);
da.Fill(dt);
comboBox1.ValueMember = "bilgi_id";
comboBox1.DisplayMember = "bilgi_ad";
comboBox1.DataSource = dt;
}
public void comboboxiki()
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=bilgiler.accdb");
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter("select * from bilgiler1", con);
da.Fill(dt);
comboBox2.ValueMember = "bilgi_id";
comboBox2.DisplayMember = "bilgi_soyad";
comboBox2.DataSource = dt;
}

public void like()
{
//ad ve soyad alanına ayrı ayrı bakıp 2side birbirine uyuyorsa filtreleme işlemi yapar
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=bilgiler.accdb");
da = new OleDbDataAdapter("SElect *from bilgiler1 where bilgi_ad LIKE '"+comboBox1.Text + "' and bilgi_soyad LIKE '" + comboBox2.Text+"'", con);
ds = new DataSet();
con.Open();
da.Fill(ds, "bilgiler1");
dataGridView1.DataSource = ds.Tables["bilgiler1"];
con.Close();
}
public void like2()
{
//sadece adsoyad alanına bakarak filtreleme işlemi yapar
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=bilgiler.accdb");
da = new OleDbDataAdapter("SElect *from bilgiler1 where bilgi_adsoyad LIKE '" + comboBox1.Text +" "+ comboBox2.Text + "'", con);
ds = new DataSet();
con.Open();
da.Fill(ds, "bilgiler1");
dataGridView1.DataSource = ds.Tables["bilgiler1"];
con.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
comboboxbir();
comboboxiki();

}

private void button1_Click(object sender, EventArgs e)
{
like();
label1.Text = comboBox1.Text + comboBox2.Text;
}

private void button2_Click(object sender, EventArgs e)
{
like2();
label1.Text = comboBox1.Text +" " + comboBox2.Text;
}
}
}



Sorgunuzdaki da alanındaki hatanız aşağıda düzeltilmiştir.
da = new OleDbDataAdapter("Select * from sistem1 where kac_kat like '" + comboBox1.SelectedValue + comboBox2.SelectedValue + " ' ", con);
Anarchosa

kişi bu mesajı beğendi.

-----
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al