ورود

View Full Version : کمک در مورد نگه داشتن دیتا گراید



vahid_visualbasic
پنج شنبه 15 مرداد 1388, 22:34 عصر
من یه دیتا گراید دارم رو فرمم یه دستور برای سرچ گذاشتم که یه رکورد رو نشون میده از دیتابیس از طریق کد زیر



Adodc1.Recordset.Filter = "tedad = '" & Text1.Text & "'"

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

vahid_visualbasic
جمعه 16 مرداد 1388, 12:41 عصر
دوستان خیلی کارم گیره لطفا کمک کنید

xxxxx_xxxxx
جمعه 16 مرداد 1388, 12:51 عصر
اگر هيچ راهي پيدا نكرديد:
از دو ديتاگريد استفاده كنيد، يكي نتيجه جستجوي فعلي رو تو خودش نگه ميداره و به ديتابيس متصل هست. دومي به ديتابيس متصل نيست و فقط نتيجه جستجو گريد قبلي رو به خودش اضافه ميكنه. و كاربر گريد دوم رو بايد ببينه و گريد اول مخفي باشه.
راه خوبي نيست ولي از هيچي بهتره

vahid_visualbasic
جمعه 16 مرداد 1388, 13:50 عصر
درسته ولی این در حالتی میشه که دو نتیجه رو بخوام پشت سر هم ببینم ولی من در نظر دارم چندین نتیجه رو پشت سر هم ببینم و حاصل این چندین نتیجه رو در دیتابیس ذخیره کنم

vbhamed
شنبه 17 مرداد 1388, 21:17 عصر
سلام

به جاي فيلتر كردن دستور Sql كل ديتا رو جايي ذخيره كنيد و هر دفعه شرط جديد رو بهش اضافه كنيد

مثلا مرحله 1

Select * From Table Where Name = 'Ali'

مرحله 2

Select * From Table Where Name = 'Ali' And Family = 'Rezaey'

مرحله 3

Select * From Table Where Name = 'Ali' And Family = 'Rezaey' And Father = 'Hossein'
.
.
.

نگه داشتن شرط قبلي هم كاري نداره كافيه تو رشته بالا دنبال عبارت Where بگرديد و از اون به بعد رو برداريد مثلا :


Sql = "Select * From Table Where Name = 'Ali' And Family = 'Rezaey'"
Condition = Mid$(Sql, "Where")

اضافه كردن شرط جديد

Sql = "Select * From Table " & condition & " And Father = 'Hossein'"

البته اگر دستورتون Order By براي مرتب سازي هم داره اون رو هم مي تونيد به روش بالا جدا كنيد و بعدا اضافه كنيد

vahid_visualbasic
یک شنبه 18 مرداد 1388, 01:55 صبح
حامد جان ممنون ولی من میخوام نتیجه سرچ اول رو تو رکورد اول تو دیتا گراید نشون بده سرچ دوم رو پشت سر سرچ اولی تو رکورد دوم دیتا گراید نشون بده !

vbhamed
یک شنبه 18 مرداد 1388, 02:57 صبح
حامد جان ممنون ولی من میخوام نتیجه سرچ اول رو تو رکورد اول تو دیتا گراید نشون بده سرچ دوم رو پشت سر سرچ اولی تو رکورد دوم دیتا گراید نشون بده !

يعني جستجوهاي شما هميشه يك ركورد برمي گردونه ؟

vahid_visualbasic
دوشنبه 19 مرداد 1388, 14:22 عصر
بله فقط یک رکورد بر میگردونه

majjjj
سه شنبه 20 مرداد 1388, 07:50 صبح
تو دات نت دیتا گردی رو چون میشه با دیتا تیبل پر کرد به راحتی این کار امکانپذیره
به همین خاطر پیشنهاد میکنم تو vb6مقادیر رو علاوه بر نشون دادن تو گرید تو یک ارایه داینامیک ذخیره و اونها رو به دیتا گرید پاس بدین

vbhamed
چهارشنبه 21 مرداد 1388, 00:56 صبح
بله فقط یک رکورد بر میگردونه

اينطور مواقع بهتره نتيجه جستجو ها رو به ترتيب تو يك Table در بانك بريزيد و سپس محتويات اون جدول رو نمايش بديد