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

نام تاپیک: فیلتر کردن datagrid بوسیله text box

  1. #1

    Smile فیلتر کردن datagrid بوسیله text box

    سلام بر همگی من یک دیتا گرید دارم دو تا فیلد نام و نام خانوادگی داره حالا میخوام بوسیله دو تکست باکس زیرش فیلترینگ انجام بدم

    روی تکست باکس اول این کد رو وارد کردم

    private void textBox1_TextChanged (object sender, EventArgs e) 
    {
    System.Data.OleDb.OleDbConnection ocn = new System.Data.OleDb.OleDbConnection();
    System.Data.OleDb.OleDbCommand ocm = new System.Data.OleDb.OleDbCommand();
    System.Data.OleDb.OleDbDataAdapter oda = new System.Data.OleDb.OleDbDataAdapter();
    DataTable dt = new DataTable();

    ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/db12.accdb";

    ocm.Connection = ocn;
    ocm.CommandText = "SELECT * FROM nf where family like '%" + textBox1.Text + "%'" ;
    oda.SelectCommand = ocm;
    oda.Fill(dt);

    dg1.DataSource = dt;

    dt.Dispose();
    oda.Dispose();
    ocm.Dispose();
    ocn.Dispose();
    }


    و روی تکست باکس دومی

     private void textBox2_TextChanged_1(object sender, EventArgs e)
    {
    System.Data.OleDb.OleDbConnection ocn = new System.Data.OleDb.OleDbConnection();
    System.Data.OleDb.OleDbCommand ocm = new System.Data.OleDb.OleDbCommand();
    System.Data.OleDb.OleDbDataAdapter oda = new System.Data.OleDb.OleDbDataAdapter();
    DataTable dt = new DataTable();

    ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/db12.accdb";

    ocm.Connection = ocn;
    ocm.CommandText = ("SELECT * FROM nf where name like '%" + textBox2.Text + "%'") ;

    oda.SelectCommand = ocm;
    oda.Fill(dt);

    dg1.DataSource = dt;

    dt.Dispose();
    oda.Dispose();
    ocm.Dispose();
    ocn.Dispose();
    }


    مشکلم این هست که من میخوام هر دو تا با هم چک بشه اینجوی هر کدوم از اینها کاره خودشونو انجام میدن میخوام مثلا تکست باکس دو با توجه به فیلترینگ تکست باکس 1 کارش رو انجام بده

    با تشکر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    بوشهر-بندر دیلم
    پست
    353

    نقل قول: فیلتر کردن datagrid بوسیله text box

    سلام
    طبق کد زیر عمل کن


    da = new SqlDataAdapter("select * from tbl_person inner join tbl_tel" +
    " on tbl_person.person_code=tbl_tel.person_code where tbl_person.person_name Like N'%" + name +
    "%' and tbl_person.person_family Like N'%" + family + "%'", con);
    da.Fill(ds, "view1");



    این کد رو اگه تو دوتا تکست باکست کپی کنی باعث میشه که هم براساس اسم و هم براساس فامیل جستجو کنه

  3. #3

    نقل قول: فیلتر کردن datagrid بوسیله text box

    ابتدا یه متد ایجاد کنید مثل این:

    private void Search()
    {
    System.Data.OleDb.OleDbConnection ocn = new System.Data.OleDb.OleDbConnection();
    System.Data.OleDb.OleDbCommand ocm = new System.Data.OleDb.OleDbCommand();
    System.Data.OleDb.OleDbDataAdapter oda = new System.Data.OleDb.OleDbDataAdapter();
    DataTable dt = new DataTable();

    ocn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/db12.accdb";

    ocm.Connection = ocn;
    ocm.CommandText = ("SELECT * FROM nf where Family like '%' + textBox1.Text + "%'
    and name like '%' + textBox2.Text + "%'" ) ;

    oda.SelectCommand = ocm;
    oda.Fill(dt);

    dg1.DataSource = dt;

    dt.Dispose();
    oda.Dispose();
    ocm.Dispose();
    ocn.Dispose();
    }


    و تو TextBox ها متد رو فراخوانی کنید.

    Search();
    آخرین ویرایش به وسیله ma.rad : شنبه 27 آبان 1391 در 17:27 عصر

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    بوشهر-بندر دیلم
    پست
    353

    نقل قول: فیلتر کردن datagrid بوسیله text box

    درسته ولی قبل از غلامت % یه علامت N بزار واسه حروف فارسی که ایراد نگیره

  5. #5

    نقل قول: فیلتر کردن datagrid بوسیله text box

    لازم نيست دستور SQL بنويسي با استفاده از خود ديتا تيبل كه اطلاعات تيبلت توش هست ميتوني اينكارو انجام بدي. بايد توجه كني كه رشته جستجو بر اساس پر يا خالي بودن تكست باكسها تغيير ميكنه مثلا وقتي يكي خالي باشه ديگه نبايد AND يا OR بذاري . متد زير ميتوني بدون استفاده از كانكشن ارتباط با SQL جستجو كني:
    Datatable1.DefaulyView.Rowfilter = "YourFiled = '" + TxtSearch.text +"'"

  6. #6

    نقل قول: فیلتر کردن datagrid بوسیله text box

    لازم نیست برای وارد کردن هر کاراکتر از دیتابیس Fetch کنید بهترین راه فیلتر کردن اطلاعات داخل DataTableه از همون روشی که ali_habibi1384 فرمودن می تونید استفاده کنید.

  7. #7

    نقل قول: فیلتر کردن datagrid بوسیله text box

    نقل قول نوشته شده توسط ali_habibi1384 مشاهده تاپیک
    لازم نيست دستور SQL بنويسي با استفاده از خود ديتا تيبل كه اطلاعات تيبلت توش هست ميتوني اينكارو انجام بدي. بايد توجه كني كه رشته جستجو بر اساس پر يا خالي بودن تكست باكسها تغيير ميكنه مثلا وقتي يكي خالي باشه ديگه نبايد AND يا OR بذاري . متد زير ميتوني بدون استفاده از كانكشن ارتباط با SQL جستجو كني:
    Datatable1.DefaulyView.Rowfilter = "YourFiled = '" + TxtSearch.text +"'"
    سلام عرض شد خدمت شما و ممنونم از لطفت دوست من

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

    یک اینکه برنامه خطای زیر را دارد
    Error 1 'System.Windows.Forms.DataGridView' does not contain a definition for 'DefaulyView' and no extension method 'DefaulyView' accepting a first argument of type 'System.Windows.Forms.DataGridView' could be found (are you missing a using directive or an assembly reference?) E:\C#‎ project\daneshjoo11\daneshjoo11\Form1.cs 135 17 daneshjoo11

    دوم اینکه من کد شما رو به این شکل نوشتم
        dg1.DefaulyView.Rowfilter = "name = '" + textBox1.Text + "' and  family = '" + textBox2.Text + "'";

    و در هر دو تکست باکس کپی کردم اما باز هم در فیترینگ هر تکست باکس بدون در نظر گرفتن تکست باکس دیگر کاره خودشو انجام میده

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    بوشهر-بندر دیلم
    پست
    353

    نقل قول: فیلتر کردن datagrid بوسیله text box

    نقل قول نوشته شده توسط hesabres مشاهده تاپیک
    سلام عرض شد خدمت شما و ممنونم از لطفت دوست من

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

    یک اینکه برنامه خطای زیر را دارد
    Error 1 'System.Windows.Forms.DataGridView' does not contain a definition for 'DefaulyView' and no extension method 'DefaulyView' accepting a first argument of type 'System.Windows.Forms.DataGridView' could be found (are you missing a using directive or an assembly reference?) E:\C#‎ project\daneshjoo11\daneshjoo11\Form1.cs 135 17 daneshjoo11

    دوم اینکه من کد شما رو به این شکل نوشتم
        dg1.DefaulyView.Rowfilter = "name = '" + textBox1.Text + "' and  family = '" + textBox2.Text + "'";

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

  9. #9

    نقل قول: فیلتر کردن datagrid بوسیله text box

    سلام دوستان

    من این کد رو نوشتم و مشکلم با یاری شما دوستان مرتفع شد
    dt.DefaultView.RowFilter = "family  like  '%" + textBox1.Text + "%' and name like '%" + textBox2.Text + "%' ";
    dg1.DataSource = dt;

    الان مشکلم در حرف " ی " هست از حرف N هم که فرمودید استفاده کردم ولی برنامه خطا گرفت میشه این کد رو با حرف N اصلاح بفرمائید ببینم من کجا اشتباه میکنم من N رو اینگونه بکار بردم برنامه ارور گرفت
    dt.DefaultView.RowFilter = "family  like  N'%" + textBox1.Text + "%' and name like '%" + textBox2.Text + "%' ";
    dg1.DataSource = dt;

  10. #10

    نقل قول: فیلتر کردن datagrid بوسیله text box

    نبود کسی از دوستان کمکی کنه ؟

  11. #11

    نقل قول: فیلتر کردن datagrid بوسیله text box

    سلام عزیزجان
    N رو باید کاملا قبل از کاراکتر قرار بدهید.

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

  1. سوال: کپی کردن مقدار یک text box به ستونی از جدول
    نوشته شده توسط hf.farhadi در بخش Access
    پاسخ: 2
    آخرین پست: پنج شنبه 05 خرداد 1390, 18:44 عصر
  2. سوال: فیلتر کردن Datagrid به وسیله ی Textbox
    نوشته شده توسط mehdisat2000 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 2
    آخرین پست: شنبه 17 اردیبهشت 1390, 21:46 عصر
  3. سوال: خالی کردن همزمان چند Text Box
    نوشته شده توسط Mehdi Naderi در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 29 آذر 1389, 15:02 عصر
  4. طریقه search کردن درون یک text box
    نوشته شده توسط ebigqi در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 01 تیر 1387, 08:03 صبح
  5. فیلتر کردن datagrid
    نوشته شده توسط mosavi_M_K در بخش VB.NET
    پاسخ: 5
    آخرین پست: چهارشنبه 30 آبان 1386, 17:15 عصر

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

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