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);