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

نام تاپیک: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

  1. #1

    فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    سلام
    دوستان عزیز میخوام طوری تو فرمم سرچ داشته باشم که داخل تکست هر حرفی که وارد میشه تمام فیلدهایی که آن حرف را دارند رکوردشان در data grid ظاهر بشه و با هر حرفی که اضافه میشه رکوردها با توجه به حرف اضافه شده در تکست باکس تطبیق پیدا کنند(به قولی سرچ لحظه ای) من یک تازه کار هستم اگر یک نمونه کد هم بزارید ممنون میشم
    در ضمن پایگاه داده من sql server 2008 است

  2. #2
    کاربر دائمی آواتار hadi-z
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    38
    پست
    421

    نقل قول: سرچ یک فیلد از DATA Base در C#‎

    سلام


    privatevoid textbox_textchanged(object sender, EventArgs e)


    {


    //this.Close();


    DataTable dt = (DataTable)this.dataGrid1.DataSource;


    DataView dv = newDataView(dt);


    dv.RowFilter = "Nume like " + "'%" + textbox.Text + "%'";


    dataGrid1.DataSource = dv;


    }

  3. #3

    Smile نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    متشکر دوست عزیز ولی خط زیر در Run Time پیغام خطا میده (Cannot find column [Nume]i ) فیلد مورد نظر را در کجای کد باید مشخص کنم


    dv.RowFilter = "Nume like " + "'%" + searchTextBox.Text + "%'";
    
    						

  4. #4
    کاربر دائمی آواتار hadi-z
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    38
    پست
    421

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    اون Nume که من نوشتم همون اسم فیلده

    اون ارور هم میگه که column ی به نام Nume پیدا نمیکنه

  5. #5

    Thumbs up نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    نقل قول نوشته شده توسط mehran63 مشاهده تاپیک
    سلام
    دوستان عزیز میخوام طوری تو فرمم سرچ داشته باشم که داخل تکست هر حرفی که وارد میشه تمام فیلدهایی که آن حرف را دارند رکوردشان در data grid ظاهر بشه و با هر حرفی که اضافه میشه رکوردها با توجه به حرف اضافه شده در تکست باکس تطبیق پیدا کنند(به قولی سرچ لحظه ای) من یک تازه کار هستم اگر یک نمونه کد هم بزارید ممنون میشم
    در ضمن پایگاه داده من sql server 2008 است
    اینهو فرفره گرید رو فیلتر میکنه.
    این رو توو textChange از تکس باکس بنویس:


    string text = txtboxFilt.Text;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    if(dataGridView1.Rows[i].Cells[0].Value != null)
    if (dataGridView1.Rows[i].Cells[0].Value.ToString().IndexOf(text.ToString())!= 0)
    {
    dataGridView1.Rows[i].Visible = false;
    }
    //else
    //{
    // dataGridView1.Rows[i].Visible = true;
    //}
    }
    if (txtboxFilt.Text == "")
    {
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    dataGridView1.Rows[i].Visible = true;
    }
    }

  6. #6
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    دوست عزيز من يك نمونه در لين زير گذاشتم
    همينه كه ميخواهي
    http://www.barnamenevis.org/sh...&postcount=615

  7. #7
    کاربر دائمی آواتار hadi-z
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    38
    پست
    421

    Thumbs up نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    نقل قول نوشته شده توسط dr_jacky_2005 مشاهده تاپیک
    اینهو فرفره گرید رو فیلتر میکنه.
    این رو توو textChange از تکس باکس بنویس:


    string text = txtboxFilt.Text;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    if(dataGridView1.Rows[i].Cells[0].Value != null)
    if (dataGridView1.Rows[i].Cells[0].Value.ToString().IndexOf(text.ToString())!= 0)
    {
    dataGridView1.Rows[i].Visible = false;
    }
    //else
    //{
    // dataGridView1.Rows[i].Visible = true;
    //}
    }
    if (txtboxFilt.Text == "")
    {
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    dataGridView1.Rows[i].Visible = true;
    }
    }


    دوست عزیز این روش درسته ولی فقط سطرهای گرید رو پنهان یا نمایان میکنه
    اگه بعدا بخوان از DataSource فیلتر شده استفاده کنن که این روش جواب نمیده

  8. #8
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    دوستان نيازي به حلقه نيست
    چرا الكي سرعت برنامه خودتون رو پايين مياريد
    متد DataView اينكارو ميكنه
    فقط كافيه متد Fillter رو صدا بزندي
    نمونه كه گذاشتم رو ببينيد
    http://www.barnamenevis.org/sh...&postcount=615

  9. #9
    کاربر دائمی آواتار hadi-z
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    38
    پست
    421

    Thumbs up نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    نقل قول نوشته شده توسط iman_lovely666 مشاهده تاپیک
    دوستان نيازي به حلقه نيست
    چرا الكي سرعت برنامه خودتون رو پايين مياريد
    متد DataView اينكارو ميكنه
    فقط كافيه متد Fillter رو صدا بزندي
    نمونه كه گذاشتم رو ببينيد
    http://www.barnamenevis.org/sh...&postcount=615
    البته من از حلقه استفاده نکردم
    و با نظر و نمونه برنامه شما موافقم

  10. #10

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    با تشکر از دوستان عزیز
    iman_lovely666 جان اون لینکی که گذاشتی خطا میده

  11. #11
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox


  12. #12
    کاربر دائمی آواتار hakelberfin
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    تبریز
    پست
    137

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    این برنامه کاری که شما میخواین رو انجام میده
    فایل های ضمیمه فایل های ضمیمه

  13. #13

    Smile نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    آقای iman_lovely666 اون سورسی که گذاشتید رو انجام دادم
    private void searchTextBox_TextChanged(object sender, EventArgs e)
    {

    string name = searchTextBox.Text;
    dv.RowFilter = string.Format("fn Like '{0}%'", name);
    dataGridView1.DataSource = dv;
    }
    }و در قسمت public partial class دستور DataView dv; را هم نوشتم

    ولی وقتی در تکست باکس هر حرفی را وارد میکنم در خطی که dv.RowFilter = string.Format("fn Like '{0}%'", name); وجود دارد پیغام Object reference not set to an instance of an object. را دارم که عکس آن را در پایین گذاشتم

    Untitled.jpg

  14. #14
    کاربر دائمی آواتار hadi-z
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    38
    پست
    421

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    سلام
    فکر کنم اسم فیلدت رو درست وارد نکردی
    اسم فیلدی که باید بر اساس اون table ات فیلتر بشه چیه؟

  15. #15

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    اسم فیلدم fn هستش تو سورسی که گذاشتم مشخصه

    dv.RowFilter = string.Format("fn Like '{0}%'", name);
    در پایین کل سورس را گذاشتم

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace ConnectioinToSql2008
    {
    public partial class formConnectioinToSql2008 : Form
    {
    DataView dv;
    SqlConnection conn = new SqlConnection();
    SqlCommand cmd = new SqlCommand();
    //SqlDataReader rd;
    SqlDataAdapter da = new SqlDataAdapter();
    DataSet ds = new DataSet();

    public formConnectioinToSql2008()
    {
    InitializeComponent();
    }

    private void formConnectioinToSql2008_Load(object sender, EventArgs e)
    {
    string str = @"server=Mehran;" + "database=for_work;" + "Integrated Security=True";
    conn.ConnectionString = str;
    //conn.Open();

    cmd.Connection = conn;
    cmd.CommandText = @"select * from tinfo";
    da.SelectCommand = cmd;
    //rd = com.ExecuteReader();
    //ds.Clear();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0];
    //rd.Close();
    //conn.Close();
    } // end method formConnectioinToSql2008_Load

    private void addButton_Click(object sender, EventArgs e)
    {
    //cmd.CommandText = "insert into tinfo(code,fn,ln,jens) valuse ('"
    //+ fNTextBox.Text + "','" + lNTextBox.Text + "',";
    cmd.CommandText = "insert into tinfo(code,fn,ln,jens) values (@code,@fn,@ln,@jens)";
    cmd.Parameters.AddWithValue("@fn", fNTextBox.Text);
    cmd.Parameters.AddWithValue("@ln", lNTextBox.Text);
    cmd.Parameters.AddWithValue("@code", codeTextBox.Text);
    cmd.Parameters.AddWithValue("@jens", jensTextBox.Text);
    foreach(Control sayre in this.Controls)
    {
    if (sayre is TextBox)
    (sayre as TextBox).Clear();
    }
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
    }

    private void codeTextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
    //faghat addad migire
    if ((e.KeyChar != 8) && (e.KeyChar != 13))
    e.Handled = !char.IsDigit(e.KeyChar);
    // hich klidi gheyr az adad ruye keybord karnemikone
    //if (e.KeyChar < '0' || e.KeyChar > '9')
    // e.Handled = true;
    }

    private void searchTextBox_TextChanged(object sender, EventArgs e)
    {

    string name = searchTextBox.Text;
    dv.RowFilter = string.Format("fn Like '{0}%'", name);

    }
    }
    }

  16. #16
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    تهران
    پست
    45

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    یک خط کد داره اینو بنویسی حله.bindingsource تو با مشخصه filter بنویس:

    کد HTML:
     private void txtSchName_TextChanged(object sender, EventArgs e)
            {
                finsertBindingSource1.Filter = "Fname Like '%" + txtSchName.Text + "%'";
            }

  17. #17

    نقل قول: فیلتر کردن رکوردهای DataGrid بر اساس عبارت وارد شده در TextBox

    این کار رو انجام دادم ولی وقتی کلمه ای که داخل فیلد هستش رو تو تکست باکس وارد میکنم هیچ عکس العملی نشون نمیده

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

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