PDA

View Full Version : بازیابی رکوردهای بین دو تاریخ؟؟؟



asemaneiran
دوشنبه 09 مرداد 1391, 17:02 عصر
سلام
دوستان خواهش میکنم کمک کنید
من یک پروژه درس بانک اطلاعاتی دارم
من در بانک توی جدول اطلاعات فردی یک ستون با نام تاریخ درج رکورد دارم که از نوعnvarchar هست و
تاریخ رو شمسی درج میکنم
میخوام وقتی کاربر در فرم توی دوتا تکست بکس دو تا تاریخ رو زد رکودهایی که تاریخ درج شون بین این دو
تاریخ هست (خود این دو تاریخ هم حساب هست)
توی گریدم نمایش داده بشه
و خود تاریخ ها در یک لیست باکس بیاد طوری که کاربر روی هر ایتم (تاریخ) در لیست کلیک کرد اطلاعات اون
تاریخ در لیبل هایی نشون داده بشه
خواهش میکنم راهنمایی کنید چطور باید این کار رو انجام بدم؟؟
ممنون

Sirwan Afifi
دوشنبه 09 مرداد 1391, 17:25 عصر
مشکلتون کجاست؟کجاشو مشکل دارید؟>

برای جستجو بین دو تاریخ می تونید از دستور Between استفاده کنید.

ali_habibi1384
دوشنبه 09 مرداد 1391, 17:31 عصر
دستور 1:


select * from table where date between startdate and enddate

مثال 2:


select * from table where (date>=satrtdate and date <= enddate)

asemaneiran
سه شنبه 10 مرداد 1391, 09:15 صبح
سلام
ممنونم
اما من مشکلم اینه که تاریخ رو شمسی در بانک میریزم اما موقع استفاده از کدهای فوق رکوردهای بهم ریخته میاره
و توی لیست باکس هم تاریخ میلادی میریزه و اینکه نمیدونم چطور با کلیک رو هر ایتم (تاریخ) توی لیست مشخصات اون رکورد لود بشه؟؟
ممنون میشم کمک کنید

ali_habibi1384
سه شنبه 10 مرداد 1391, 09:25 صبح
سلام
ممنونم
اما من مشکلم اینه که تاریخ رو شمسی در بانک میریزم اما موقع استفاده از کدهای فوق رکوردهای بهم ریخته میاره
و توی لیست باکس هم تاریخ میلادی میریزه و اینکه نمیدونم چطور با کلیک رو هر ایتم (تاریخ) توی لیست مشخصات اون رکورد لود بشه؟؟
ممنون میشم کمک کنید
توي sql كه ليست باكس نداريم!
قرمت تاريخ رو در جدول بجاي Date به nvarchar(10) تغيير بديد

asemaneiran
سه شنبه 10 مرداد 1391, 09:40 صبح
سلام
ممنونم
اما من مشکلم اینه که تاریخ رو شمسی در بانک میریزم اما موقع استفاده از کدهای فوق رکوردهای بهم ریخته میاره:ناراحت:
و توی لیست باکس هم تاریخ میلادی میریزه و اینکه نمیدونم چطور با کلیک رو هر ایتم (تاریخ) توی لیست مشخصات اون رکورد لود بشه؟؟
ممنون میشم کمک کنید

ali_habibi1384
سه شنبه 10 مرداد 1391, 10:14 صبح
سلام
ممنونم
اما من مشکلم اینه که تاریخ رو شمسی در بانک میریزم اما موقع استفاده از کدهای فوق رکوردهای بهم ریخته میاره:ناراحت:
و توی لیست باکس هم تاریخ میلادی میریزه و اینکه نمیدونم چطور با کلیک رو هر ایتم (تاریخ) توی لیست مشخصات اون رکورد لود بشه؟؟
ممنون میشم کمک کنید

اينا رو كه يكبار گفتي! پرسيدم كدوم ليست باكس؟
اگر منظورت از بهم ريخته اينكه نا مرتبه خب بر اساس يه ستون مرتبشون كن:


select * from table where (date>=satrtdate and date <= enddate) order by date

asemaneiran
سه شنبه 10 مرداد 1391, 17:07 عصر
در فرم دوم یک لیست باکس و دو تا تکس باکس دارم میخوام تاریخ های بین دو تاریخ وارده در تکس باکس ها در لیست باکس بیاد و با کلیک رو هر ایتم اطلاعاتش لود بشه
بهم ریختگی
یعنی اطلاعات در گرید برا تاریخ های بعد از اون تاریخ هم وجود داره
ممنون

ali_habibi1384
سه شنبه 10 مرداد 1391, 21:25 عصر
آخرش هم نفهميدم . اگر ميخواي مقادير تكست باكسها رو به ليست باكس اضافه كني:


lst.Items.Add(text1.text);

توي رويداد كيليكش هم ميتوني بگي آيتمي كه كليك شده رو بفرستي توي sp و چيزايي رو كه ميخواي ازش استخراج كني

ALPking
سه شنبه 10 مرداد 1391, 22:51 عصر
سلام
اگه بخوای کدی که علی آقا گفتند درست بهت جواب بده باید تاریخ را به صورت رشته 8 کاراکتریه عددی مثلا 13910105 (5 فروردین 1391) ذخیره کنی و حتمن حتمن حتمن 8 رقم کامل باشه (تأکید روی صفر مربود به 01) و اگه تاریخ را مثلا 139115 نگهداری کنی یا 05/01/1391 اینطوری هیچ وقت جواب نمی گیری.
حالا این کار را بکن شاید جواب بده.

ali_habibi1384
چهارشنبه 11 مرداد 1391, 00:54 صبح
سلام
اگه بخوای کدی که علی آقا گفتند درست بهت جواب بده باید تاریخ را به صورت رشته 8 کاراکتریه عددی مثلا 13910105 (5 فروردین 1391) ذخیره کنی و حتمن حتمن حتمن 8 رقم کامل باشه (تأکید روی صفر مربود به 01) و اگه تاریخ را مثلا 139115 نگهداری کنی یا 05/01/1391 اینطوری هیچ وقت جواب نمی گیری.
حالا این کار را بکن شاید جواب بده.
چنين چيزي نيست. با همون nvarchar(10) جواب ميده!

mousa1992
چهارشنبه 11 مرداد 1391, 01:23 صبح
تاریخ توی دیتابیس رو میلادی ذخیره کن(فیلدت رو datetime در نظر بگیر) و هنگام جستجو تاریخ هایی رو که از تکس باکس ها به صورت شمسی میگیری تبدیل به میلادی کن و سرچ رو انجام بده

ali_habibi1384
چهارشنبه 11 مرداد 1391, 02:14 صبح
تاریخ توی دیتابیس رو میلادی ذخیره کن(فیلدت رو datetime در نظر بگیر) و هنگام جستجو تاریخ هایی رو که از تکس باکس ها به صورت شمسی میگیری تبدیل به میلادی کن و سرچ رو انجام بده
نياز به چنين كاري نيست با همون nvarchar جواب ميده.
وقتي با نوع nvarchar جواب ميده چرا لقمه رو دور سر بنده خدا ميپيچوني؟!