PDA

View Full Version : سوال: کمک در مورد اتصال دو کد جستجو



behnam3000
جمعه 30 مرداد 1394, 20:56 عصر
با سلام من خیلی پست گداشتم ولی کسی جوابمو نمیده اینم میپرسم شاید یکی کمکم کرد
من تو پروژم چند تا تکست باکس دارم
که همه از روی دیتا گرید عمل جستجو رو انجام میدم جز یک جاش که مشکل دارم این کد هامه
1-کد داخل تکستباکس ها
134519
sabtBindingSource.Filter = "serial like '" + textBox25.Text + "%' AND noemotor LIKE '" + textBox24.Text + "%' AND rangmotor LIKE '" + textBox23.Text + "%' AND shomaretane LIKE '" + textBox22.Text + "%' AND shomaremotor LIKE '" + textBox21.Text + "%' AND shomarepelak LIKE '" + textBox20.Text + "%' AND enterdate LIKE '" + textBox19.Text + "%' AND enddate LIKE '" + textBox18.Text + "%' AND yegan LIKE '" + textBox17.Text + "%' AND keraye LIKE '" + textBox16.Text + "%' AND tarkhis LIKE '" + textBox15.Text + "%'";
dataGridView1.DataSource = sabtBindingSource;

تو تموم تکست باکس ها این کد رو نوشتم و هر کدوم بر اساس دیتا گرید فیلتر میکنن
2-کدی که تو دوتا کلیک نوشتم
var db = new DataClasses1DataContext();
var search = from n in db.sabts
where string.Compare(n.enterdate, textBox19.Text) >= 0
&& string.Compare(n.enterdate, textBox26.Text) <= 0
select n;

dataGridView1.DataSource = search;
تو کد بالا دو تا تکست باکس ها یی که زیر همن بین دو تاریخ جستجو میکنن حالا میخوام مثل بقیه از دیتا گرید سرچ کنن
مثلا اونایی که سریال 1 دارن رو که زدم بعد دوتا تاریخ رو وارد کردم بر اساس اونایی که یک داره جستجو کنه
مرسی از کمکتون لطفا کمک کنین خیلی گیرم

ژیار رحیمی
جمعه 30 مرداد 1394, 22:18 عصر
دوست گرامی روش کد نویسی شما اشتباست .برای هر مقدار لازم نیست که جستجو در دیتابیس انجام بشه ابتدا یه لیست تعریف کن تمام مقادیر جدول رو یه بار از دیتابیس بخون و تو لیست بریز.بعد جستجو رو داخل لیست انجام بده که منطقی تره و سریعتر نسبت به هربار خوندن دیتابیسه.برای جستجو در نتایج نتایج کافیست جستجوی قبلی رو تو یه لیست موقت بریزی و برای جستجوی دوم از لیست استفاده کنی

ژیار رحیمی
جمعه 30 مرداد 1394, 22:22 عصر
الان کد بالایی که نوشتی جستجوی همزمان برای تمام مقادیر است که تمام تکست باکسها همزمان در کویری جستجو آوردی بهتره جستجو رو برای هر تکست باکس بصورت مستقل بزاری.تو رویداد تکست چنجهر تکست باکس کد مربوط به جستجوی مقدار اون کست باکس رو بنویس

behnam3000
جمعه 30 مرداد 1394, 23:11 عصر
الان کد بالایی که نوشتی جستجوی همزمان برای تمام مقادیر است که تمام تکست باکسها همزمان در کویری جستجو آوردی بهتره جستجو رو برای هر تکست باکس بصورت مستقل بزاری.تو رویداد تکست چنجهر تکست باکس کد مربوط به جستجوی مقدار اون کست باکس رو بنویس

با سلام دوست عزیز من تو رویداد تکست چنج تمام تکست باکسام جز دو تای پایین کد اول رو نوشتم
فقط میخوام کد دومی رو که تو باتون نوشتمو مثل اونا کاری کنم که تو دیتا گرید ویو فیلتر بشه
اگه میشه کدش رو برام بزارید که تو باتون بنویسم تا بر اساس جستجو های قبلی بین دو تاریخ رو بیاره
اگر لطف کنین کد منو به چیزی که میگید تغییر بدید من زیاد سی شارپ بلد نیستم :((

ژیار رحیمی
جمعه 30 مرداد 1394, 23:46 عصر
قسمت اول تعریفات و ریختن تمام رکوردها تو لیست اصلی

List<sabt> totList=new List<sabt>();
List<sabt> tmpList=new List<sabt>();
totList=db.sabts.ToList();


قسمت دوم مربوط به تکست باکس اول که بخش اول جستجو رو انجام و در لیست موقت میریزم

tmpList=totList.Where(c=>c.enterdate.Compare(textBox1.Text)==0);


بخش سوم جستجو دوم در نتایج جستو قبلی

gv.DataSoure=tmpList.Where(c=>c.enterdate.Compare(textBox2.Text)==0);

behnam3000
شنبه 31 مرداد 1394, 00:14 صبح
قسمت اول تعریفات و ریختن تمام رکوردها تو لیست اصلی

List<sabt> totList=new List<sabt>();
List<sabt> tmpList=new List<sabt>();
totList=db.sabts.ToList();


قسمت دوم مربوط به تکست باکس اول که بخش اول جستجو رو انجام و در لیست موقت میریزم

tmpList=totList.Where(c=>c.enterdate.Compare(textBox1.Text)==0);


بخش سوم جستجو دوم در نتایج جستو قبلی

gv.DataSoure=tmpList.Where(c=>c.enterdate.Compare(textBox2.Text)==0);


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

ژیار رحیمی
شنبه 31 مرداد 1394, 00:25 صبح
قسمت اول متغییر های عمومی کلاس Form هستند میتونی بالاسر تابع لود بنویسی(2خط اول ) و خط سوم اون رو در رویداد فرم لود بنویس

var db = new DataClasses1DataContext();
totList=db.sabts.ToList();

ژیار رحیمی
شنبه 31 مرداد 1394, 00:34 صبح
اگر خطایی داد احتمالا از اضافه نشدن رفرنس System.Linq

using System.Linq;