نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل جستجو در datagridview

  1. #1

    مشکل جستجو در datagridview

    سلام .. با عرض معذرت خدمت اساتید و مدیران محترم سایت . خواهشمندم در صورتی که جای سوال درست نیست تاپیک رو نبندید و اجازه بدید پاسخ مشکلم رو پیدا کنم .
    من چند سال پیش برنامه نویسی C#‎ انجام میدادم .. و بعد از چند سال دوری با استفاده از تکه سورس کدها یه برنامه ای رو برای بانک نوشتم . کار این برنامه جستجو و فیلتر کردن کلمات ورودی به تکست باکس هست که فیلتر رو از طریق فیلد کومبو باکس انجام میده و جستجو رو در کولومن انتخابی انجام میده . مشکل اینجاست که جستجو در این برنامه فقط در بین کلمات اول انجام میشه . به فرض دیتا بیس من دارای عبارت " دفاتر معین اداره معاملات ریالی " هست . در این برنامه جستجو فقط برای کلمه دفاتر ممکن هست و برای سایر کلمات جستجو دارای نتیجه نیست . من سورس کامل برنامه رو وارد میکنم . تا دوستان و اساتید محترم راهنمایی کنند . ممنونم .


    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OleDb;
    using System.IO;


    namespace dgv_filter
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    String connect = @"provider=microsoft.jet.oledb.4.0;" + @"data source=" + Application.StartupPath + "/dbs.mdb";
    OleDbConnection con;
    OleDbCommand command;
    OleDbDataAdapter adapter;
    DataTable objDataTable;



    private void load()
    {
    try
    {
    con = new OleDbConnection(connect);
    con.Open();
    string query = "select madde,family,name,ncode,emha from zirna";
    command = new OleDbCommand();
    command.CommandText = query;
    command.Connection = con;
    adapter = new OleDbDataAdapter();
    adapter.SelectCommand = command;
    objDataTable = new DataTable();
    adapter.Fill(objDataTable);

    con.Close();
    dataGridView1.DataSource = objDataTable;
    dataGridView1.Columns[0].HeaderText = "ماده";
    dataGridView1.Columns[0].Width = 80;



    dataGridView1.Columns[1].HeaderText = "ردیف";
    dataGridView1.Columns[1].Width = 100;




    dataGridView1.Columns[2].HeaderText = "بند";
    dataGridView1.Columns[2].Width = 70;




    dataGridView1.Columns[3].HeaderText = "شرح مواد آئین نامه";
    dataGridView1.Columns[3].Width = 70;


    dataGridView1.Columns[4].HeaderText = "وضعیت امحاء";
    dataGridView1.Columns[4].Width = 70;
    }
    catch { MessageBox.Show("سیستم به بانک اطلاعاتی وصل نشده است"); this.Dispose(); }
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    load();
    }
    void serach()
    {
    string query = null;
    try
    {
    switch (comboBox1.Text)
    {
    case "بند": { query = "SELECT name,family,ncode,madde,emha FROM zirna WHERE name LIKE '" + textBox1.Text + "%'"; break; }
    case "ردیف": { query = "SELECT name,family,ncode,madde,emha FROM zirna WHERE family LIKE '" + textBox1.Text + "%'"; break; }
    case "شرح مواد آئین نامه": { query = "SELECT name,family,ncode,madde,emha FROM zirna WHERE ncode like '" + textBox1.Text + "%'"; break; }
    case "ماده": { query = "SELECT name,family,ncode,madde,emha FROM zirna WHERE madde LIKE '" + textBox1.Text + "%'"; break; }
    case "وضعیت امحاء": { query = "SELECT name,family,ncode,madde,emha FROM zirna WHERE emha LIKE '" + textBox1.Text + "%'"; break; }


    default: { break; }
    }


    con = new OleDbConnection(connect);
    con.Open();
    command = new OleDbCommand();
    command.CommandText = query;
    command.Connection = con;
    adapter = new OleDbDataAdapter();
    adapter.SelectCommand = command;
    objDataTable = new DataTable();
    adapter.Fill(objDataTable);
    con.Close();
    dataGridView1.DataSource = objDataTable;
    }
    catch { }
    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }


    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    serach();
    }


    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {


    }


    private void button4_Click(object sender, EventArgs e)
    {
    System.Diagnostics.Process.Start(@"C:\1.pdf");
    }


    private void button5_Click(object sender, EventArgs e)
    {
    Form3 f3 = new Form3();
    f3.Show();
    }


    private void button3_Click(object sender, EventArgs e)
    {
    Form2 f2 = new Form2();
    f2.Show();
    }


    private void button1_Click(object sender, EventArgs e)
    {
    if (MessageBox.Show(" مطمئن هستید که قصد خروج دارید ؟", "خروج از برنامه", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {


    Application.Exit();


    }
    }


    private void groupBox1_Enter(object sender, EventArgs e)
    {


    }
    }
    }




    تصویر محیط برنامه :

    5.jpg

  2. #2

    نقل قول: مشکل جستجو در دیتا گرید ویو

    نقل قول نوشته شده توسط elvishman مشاهده تاپیک
    سلام .. با عرض معذرت خدمت اساتید و مدیران محترم سایت . خواهشمندم در صورتی که جای سوال درست نیست تاپیک رو نبندید و اجازه بدید پاسخ مشکلم رو پیدا کنم .
    سلام به شخصه از این روش استفاده می کنم تا حالا هم مشکلی نداشتم
    برای لود اطلاعات :

    try
    {
    this.KeyPreview = true;
    if (con.State != ConnectionState.Open)
    con.Open();
    da = new OleDbDataAdapter("select * from tbl", con);
    da.Fill(ds, "tbl");
    dv.Table = ds.Tables["tbl"];
    dgv.DataSource = dv;
    dgv.Columns["Heder.UID"].HeaderText = "کد ";
    dgv.Columns["Heder.UID"].Width = 100;
    dgv.Columns["TBImar.UName"].HeaderText = "نام";
    dgv.Columns["TBImar.UName"].Width = 100;
    dgv.Columns["uidBime"].HeaderText = "شماره بیمه";
    dgv.Columns["uidBime"].Width = 100;
    dgv.Columns["LastDate"].HeaderText = "تاریخ آخرین جلسه";
    dgv.Columns["LastDate"].Width = 100;
    dgv.Columns["PriceBimar"].Width = 100;
    dgv.Columns["Date"].Visible = false;
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    if (con.State != ConnectionState.Closed)
    con.Close();
    }


    و برای جستجو در قسمت TextChanged از کد زیر استفاده می کنم

    try
    {
    dv.RowFilter = "TBImar.Uname like '%" + txtSerach.Text + "%' or uidBime like '%" + txtSerach.Text + "%' or LastDate like '%" + txtSerach.Text + "%'";
    dgv.DataSource = dv;
    }
    catch (Exception ex_
    )
    {
    MessageBox.Show(ex_.Message);
    }

    با استفاده از کد بالا و به کار گیری چند فیلد با استفاده از OR می تونید روی چند فیلد فیلتر گذاری کنید .
    اگر کمبوباکس هم برای شما اهمیت داره می تونید در انتها از And هم استفاده کنید که فیلتر گذاری زودتر به نتیجه برسه

  3. #3

    نقل قول: مشکل جستجو در datagridview

    با تشکر از دوست عزیز Yanehsar
    دوستان اگر راه حل دیگه ای هم دارن که مبتنی بر سورس کد خود برنامه که بالا نوشتم هست ارائه کنند لطفا . خدا خیرتون بده انشاا...

تاپیک های مشابه

  1. مشکل در جستجو در datagridview
    نوشته شده توسط akobar در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 08 خرداد 1390, 12:41 عصر
  2. مشکل جستجو در datagridview
    نوشته شده توسط soniarose در بخش VB.NET
    پاسخ: 5
    آخرین پست: دوشنبه 11 آبان 1388, 21:01 عصر
  3. مشکل جستجو در datagridview
    نوشته شده توسط yaserzare در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 11 فروردین 1386, 18:50 عصر
  4. مشکل جستجو با استفاده از Full Text Search
    نوشته شده توسط مهدی کرامتی در بخش SQL Server
    پاسخ: 16
    آخرین پست: دوشنبه 17 مرداد 1384, 19:50 عصر
  5. مشکل جستجو
    نوشته شده توسط (امید) در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 0
    آخرین پست: چهارشنبه 01 بهمن 1382, 11:56 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •