PDA

View Full Version : فیلتر کردن datagridview با چهار textbox



sabz12
پنج شنبه 14 خرداد 1394, 18:57 عصر
یک دیتا گریدویو دارم که بالاش چهارتا تکس باکس قرار دادم و عمل جستجو را با این کد انجامش دادم که کار میکنه جستجو انجام میشه با بقیه تکس باکسها می خواهم عمل فلتر انجام بشه یعنی اونجستجو را کامل تر کنم به بیان دیگر
اولین جستجو از هر تکس باکسی انجام شد از بانک بگیره و وقتی یکی از تکس باکسها پر بود دیگه ار خود جدول دیتا فیلتر کنه همچین چیزی تو حسابداری هلو دیدم که خیلی برام جالب بود. ممنون می شم یک راهنمایی بکنید یا نمونه ای بزارید بازم تشکر

string resht = textSerchF.Text;

SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select id ,cod ,farsi as,mesal as,tozih from gadvalCod where farsi like @s";
cmd.Parameters.AddWithValue("@s", "%" + resht + "%");
SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
dataGridView1.DataSource = table;
dataGridView1.Columns[0].Visible = false;


dataGridView1.Refresh();

ebrahim.rayatparvar
پنج شنبه 14 خرداد 1394, 23:18 عصر
سلام مهندس جان برای کد زدن این روش کمی سخته به همین راحتی که بالا کد زیدی نیست ولی یه نکته اینه که شرکت های بزرگ برای نرم افزار بزرگ یه پر فروش از کامپوننت شرکت های tellrik یا devexpress یا .. می توننی استفاده کنی که من خودم devexpress استفاده می کنم و این کار فیلتر رو نیازی هم به کد زدنت نیست.

RmeXXXXXXXXX
پنج شنبه 14 خرداد 1394, 23:30 عصر
برای اینچنین جستجو منبع داده (لیست یا Tabel) باید همیشه در دسترس باشه. یعنی DataSource گریدویو رو به عنوان متغیری عمومی در کلاس تعریف کنید و با هربار تغییر یکی از تکست باکسها دوباره عمل جستجو رو روی همون منبع داده انجام بدین و دیتاگیریدویو رو refresh کنید.

gabrieleb
جمعه 15 خرداد 1394, 12:22 عصر
آموزش زیر شاید به دردتون بخوره، منبعش هم w3-farsi.com (http://www.w3-farsi.com/) ه

جستجو در دیتاگرید بر اساس چند تکس باکس با استفاده از LINQtoSQL

برای جستجو در DataGridView بر اساس چندین TextBox ابتدا یک برنامه ویندوزی به صورت زیر ایجاد کنید :

http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-1.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-1.png)
برای روی نام پروژه در Solution Explorer راست کلیک کرده و از منوی ظاهر شده بر روی add و در نهایت new item کلیک می کنید. در صفحه ظاهر شده بر روی گزینه LINQ TO SQL Classes کلیک کرده و دکمه OK را بزنید. از منوی View بر روی Server Explorer کلیک کنید و به صورت زیر بانک مورد نظرتان را drag نمایید :
http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql.png)
سپس کدهای زیر را در رویداد Load فرم و Click دکمه بنویسید :using System;



using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{


private DataClasses1DataContext context = new DataClasses1DataContext();


public Form1()
{
InitializeComponent();
}


private void Form1_Load(object sender, EventArgs e)
{
this.dataGridView1.DataSource = context.tablePersonels;
}


private void button1_Click(object sender, EventArgs e)
{
IEnumerable<tablePersonel> query = from personel in context.tablePersonels
where personel.FirstName.Contains(this.textBox1.Text) &&
personel.LastName.Contains(this.textBox2.Text)
select personel;

this.dataGridView1.DataSource = query;
}
}
}


حال برنامه را اجرا و نتیجه را مشاهده کنید :

http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-2.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-2.png)http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-3.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-3.png)http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-4.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/linq-to-sql-4.png)

sabz12
جمعه 15 خرداد 1394, 14:46 عصر
تشكر بابت توجه شما
اگر بخوام يك متغيير سراسري تعريف كنم يعني از چه نوع بايد باشه؟؟خارج تابع اين را بزنم
DataTable table ;
اين درست؟؟