PDA

View Full Version : جستجو در کل datagrid



kamiloted
جمعه 30 مهر 1395, 01:02 صبح
سلام دوستان.
من یه تکست باکس دارم با یه دیتا گرید.
میخوام هر عبارتی توی تکست باکس نوشتم.
توی کل دیتا گرید بگرده و بهم نشون بده.
ممنون میشم اگه راهنمایی کنید

mrprestige
جمعه 30 مهر 1395, 10:05 صبح
سلام دوست من ، خب شما میتونی از فیلتر استفاده کنی

var dataTable = dataGridView1.DataSource as DataTable;
if (dataTable != null)
dataTable.DefaultView.RowFilter =string.format("ID = '{1}'",Convert.ToInt32(textBox1.Text.Trim());

ID منظور همون نام ستونی هست که میخوای جستجو بر اون اساس انجام بشه حالا باز میتونی این محدودیت هم برداری .

kamiloted
جمعه 30 مهر 1395, 14:09 عصر
سلام دوست من ، خب شما میتونی از فیلتر استفاده کنی

var dataTable = dataGridView1.DataSource as DataTable;
if (dataTable != null)
dataTable.DefaultView.RowFilter =string.format("ID = '{1}'",Convert.ToInt32(textBox1.Text.Trim());

ID منظور همون نام ستونی هست که میخوای جستجو بر اون اساس انجام بشه حالا باز میتونی این محدودیت هم برداری .

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

daniyaltjm
جمعه 30 مهر 1395, 14:52 عصر
سلام خوب از دستور for استفاده کن و هر چیزی رو می خوای سرچ کن:متفکر:

mrprestige
جمعه 30 مهر 1395, 15:59 عصر
ممنونم داداش.
من نمیخوام اینظور باشه.
میخوام مثل کنترل + اف ویندوز هست.
مثله اون سرچ انجام بدم ممنونم
آره دوسته من متوجه شدم ولی من تو اینجا بهتون ماهیگیری رو یاد دادم . یعنی اینکه تو میتونی باز این محدودیت رو برداری اصلا میتونی یه کار دیگه کنی ! با استفاده از عملگر Like در SQLAdapter جستجو رو انجام بدی به این صورت که میتونی عمل جستجو رو بدون محدودیت انجام بدی ولی به این شیوه که عرض میکنم

con = new SqlConnection("ConnectionString");
con.Open();
adapt = new SqlDataAdapter("select * from Tablename where Field1 like '" + textBox1.Text + "%' or Field2 like '" + textBox1.Text + "%'", con);
dt = new DataTable();
adapt.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();


اینجا برای مثال یه جدول با دو ستون رو زدم ولی حالا جدولمون هرچند تا که ستون داشت به این صورت از عمگلر Like استفاده میکنیم همینطور عملگر OR . البته با EF هم میشد نوشت که اینو میزارم به عهده خودت اگه نوشتی بزار تا باقی دوستان هم استفاده کنن .

شهابسلطانی
دوشنبه 03 آبان 1395, 10:17 صبح
سلام دوست من ، خب شما میتونی از فیلتر استفاده کنی

var dataTable = dataGridView1.DataSource as DataTable;
if (dataTable != null)
dataTable.DefaultView.RowFilter =string.format("ID = '{1}'",Convert.ToInt32(textBox1.Text.Trim());


ID منظور همون نام ستونی هست که میخوای جستجو بر اون اساس انجام بشه حالا باز میتونی این محدودیت هم برداری .

در تکمیل فرمایشات دوست و استاد عزیز
شما میتونید یه کلاس بتنویسید و در هرجا لازم داشتی بر اساس نیاز کلاس رو فرابخونی (البته باید بنا به نیاز نام جدولت رو تغییر بدی) و دستور فیلتر رو با like حتما بنویس

jafar2012
سه شنبه 04 آبان 1395, 09:03 صبح
سلام
همین امروز خاستم همچین پستی بزرام
ببنید با لینک و select هم میشه ولی مشکل اینجاست که توی select تمام کاراکترها رو نمیشه گذاشت و اینق هم خوب بلد نیستم باهاش کار کنم چون یک لگوی سرچ دارم به این صورت
مثلا : محمد جواد الاهی
توی سرچ باکس طرف تایپ کنه م+ج+ا
اینو با دستور سلکت نوشتم ولی مشکلش اینه که همه جور کاراکتری قبول نمیکنه
با لین هم نتونستم این الگو رو درست کنم

مشکل دیگه هم بعضی از ستونهای دیتاگرید ویو نوعشون int هست نه string
و الان دیتاگرید ویو د10 هزار رکورد داره و ده تا ستون

این روش RowFilter هم برام کار نمیکنه حتی از نت یک سورس دیگه گرفتم کار نکرد
من برای نمایش داده ها فقط دیتاتیبل رو متصل میکنم به دیتاگریدویو
و از mysql استفاده میکنم و از دیتا اداپتور و چیز دیگه ای استفاده نکردم

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