PDA

View Full Version : جستجو بین دو تاریخ و بر اساس شناسه



hadi vafaii
پنج شنبه 20 مهر 1396, 00:26 صبح
سلام عرض می کنم خدمت دوستان عزیز
من با استفاده از کد ریز بین دو تاریخ جستجو میکنم
"select * from tblmorkhasi where TarikhKHoroj between'"+aval+"' and '" + dovom + "'";

ولی اگر در دیتابیس دو شناسه با یک تاریخ مشخص ثبت شده باشه هر دو نام رو میاره
حالا باید چی کار کنم که فقط اطلاعاتی که برای یک فرد در تاریخ های متفاوت ذخیره شده و براساس اون تاریخ جستجو میکنم بیاد
لطفا در صورت تکراری بودن لینک بدین و حذف نکنید
در ضمن دیتابیسم اکسس هست و اینجوری نوشتم اما نشد
b.CommandText = "select * from tblmorkhasi where shenase='"+shenase+"' and where TarikhKHorojbetween'"+aval+"' and '" + dovom + "'";

رامین مرادی
پنج شنبه 20 مهر 1396, 09:04 صبح
select * from tblmorkhasi where shenase='"+shenase+"' and TarikhKHorojbetween'"+aval+"' and '" + dovom + "'
دوتا WHERE نوشته بودین

danialafshari
پنج شنبه 20 مهر 1396, 23:46 عصر
سلام عرض می کنم خدمت دوستان عزیز
من با استفاده از کد ریز بین دو تاریخ جستجو میکنم
"select * from tblmorkhasi where TarikhKHoroj between'"+aval+"' and '" + dovom + "'";

ولی اگر در دیتابیس دو شناسه با یک تاریخ مشخص ثبت شده باشه هر دو نام رو میاره
حالا باید چی کار کنم که فقط اطلاعاتی که برای یک فرد در تاریخ های متفاوت ذخیره شده و براساس اون تاریخ جستجو میکنم بیاد
لطفا در صورت تکراری بودن لینک بدین و حذف نکنید
در ضمن دیتابیسم اکسس هست و اینجوری نوشتم اما نشد
b.CommandText = "select * from tblmorkhasi where shenase='"+shenase+"' and where TarikhKHorojbetween'"+aval+"' and '" + dovom + "'";



با سلام
هم اینکه دوتا Where نوشتین و هم اینکه بین between فاصله ننداختید
به شکل زیر تغییرش بدید

b.CommandText = String.Format("SELECT tblmorkhasi.*, tblmorkhasi.ExitDate FROM tblmorkhasi WHERE (((tblmorkhasi.shenase)='{0}' AND ((tblmorkhasi.ExitDate) Between '{1}' And '{2}'));",shenase,aval,dovom);

موفق باشید

hadi vafaii
سه شنبه 02 آبان 1396, 21:13 عصر
با سلام
هم اینکه دوتا Where نوشتین و هم اینکه بین between فاصله ننداختید
به شکل زیر تغییرش بدید

b.CommandText = String.Format("SELECT tblmorkhasi.*, tblmorkhasi.ExitDate FROM tblmorkhasi WHERE (((tblmorkhasi.shenase)='{0}' AND ((tblmorkhasi.ExitDate) Between '{1}' And '{2}'));",shenase,aval,dovom);

موفق باشید

متاسفانه نشد

hadi vafaii
سه شنبه 02 آبان 1396, 21:24 عصر
با سلام
هم اینکه دوتا Where نوشتین و هم اینکه بین between فاصله ننداختید
به شکل زیر تغییرش بدید

b.CommandText = String.Format("SELECT tblmorkhasi.*, tblmorkhasi.ExitDate FROM tblmorkhasi WHERE (((tblmorkhasi.shenase)='{0}' AND ((tblmorkhasi.ExitDate) Between '{1}' And '{2}'));",shenase,aval,dovom);

موفق باشید
تاریخ را به صورت رشته ذخیره کردم مشکل از اونه؟

hadi vafaii
چهارشنبه 03 آبان 1396, 00:47 صبح
سلام مجدد یک راه حلی به ذهنم رسیده اما باز هرچی جستجو کردم چیزی عایدم نشد
اما راه حل اینه
اول با beetwen بین دو تاریخ رو بیارم تو دیتاگرید ویو بعد داخل دیتاگرید ویو جستجو کنم که مثلا بین ایدی 1 و 2 و 3 و...... فقط اطلاعات ایدی 2 رو نشون بده
حالا کسی میدونه چجوری داخل دیتا گرید جستجو کنم

alireza4474
چهارشنبه 03 آبان 1396, 00:52 صبح
سلام
دو راه وجود داره
1. ذخیره کردن به صورت تاریخ میلادی و date
2. راهی که خودم استفاده میکنم : تاریخ رو به صورت یک عدد ذخیره می کنم به این صورت 1396/8/2 ===> 13960802

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

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

به این صورت که یه ستون به datagrid و یه ستون به datatable اضافه میکنم و در اون ستون جدید تاریخ رو به صورت درست نمایش میدم

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

mz6488
چهارشنبه 03 آبان 1396, 13:31 عصر
سلام.جستجوی بین دو تاریخ بستگی به فرمت ذخیره شدنش داره.مثلا من فرمت 1396/07/02 رو برای هر تاریخ در نظر می گیرم و همه تاریخ ها باید با همین فرمت ذخیره بشنوبعد میتونید جستجو رو خیلی راحت اعمال کنید.دقت کنید اگه فرضا تاریخ من یشه 1396/07/2 دیگه جستجوی عمل نمیکنه

hadi vafaii
دوشنبه 06 آذر 1396, 10:55 صبح
سلام مجدد کسی نبود کمک کنه
من تاریخ رو به صورت رشته ذخیره می کنم و میتونم بین دو تاریخ رو جستجو کنم اما مشکل اینجاست که اگر مثلا دو نفر اطلاعاتی بین این دو تاریخ داشته باشن هر دو نفر رو میاره در حالی که من میخوام اطلاعاتی که مثلا بین دو تاریخ 1396/02/02 تا 1396/03/14 و مربوط به شخصی با شناسه مثلا 10 رو داره بیاره و اشخاص دیگه رو نشون نده

danialafshari
سه شنبه 07 آذر 1396, 02:33 صبح
با سلام
هم اینکه دوتا Where نوشتین و هم اینکه بین between فاصله ننداختید
به شکل زیر تغییرش بدید

b.CommandText = String.Format("SELECT tblmorkhasi.*, tblmorkhasi.ExitDate FROM tblmorkhasi WHERE (((tblmorkhasi.shenase)='{0}' AND ((tblmorkhasi.ExitDate) Between '{1}' And '{2}'));",shenase,aval,dovom);

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

hadi vafaii
چهارشنبه 15 آذر 1396, 06:09 صبح
:لبخند::لبخند::لبخند::لبخند:
بعد از کلی سر و کله زدن با این کد بالاخره حل کردم یعنی پدرم در اومد تا حل کنم کدش رو قرار میدم و امیدوارم اگر کسی هم چین مشکلی داشت حل بشه با این روش

b.CommandText = " select * from tblmorkhasi where cod like '" + cod + "%' And datekhoroj between '"+khoroj1+"' And '"+khoroj2+"' ";