مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

روش مقایسه تاریخ با linq

پنج شنبه, 08 بهمن 1394 13:55

روش مقایسه تاریخ با linq

با سلام

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

چون تاریخ هام رو به صورن nvarchar در دیتابیس ذخیره میکنم نمیدونم چطوری این کار رو انجام بدم.

میشه راهنماییم کنین؟

با تشکر

پنج شنبه, 08 بهمن 1394 14:10

مشکل کجاست ؟

تاریخ ها شمسی ذخیره شده ؟

تاریخ ها شمسی وارد میشوند ؟

پنج شنبه, 08 بهمن 1394 14:29

بله با ی تابع جی کوعری تاریخ را به صورت شمسی(1394/01/11) وارد میکنم.

از کد زیر استفاده کردم اما ج نمیده.

  var q = (from x in Mybank.TblRequestQuestions
                         join y in Mybank.TblUserProfles on
               x.MeliCode equals y.MeliCode
                         where ((x.ReplyDate.CompareTo(TxtDate1.Text) <= x.ReplyDate.CompareTo(TxtDate2.Text)))
                        select new
                          {
                         
                              x.ReplyDate,
                              y.LName
                          }).ToList();
                GridView1.DataSourceID = null;
                GridView1.DataSource = q;
                GridView1.DataBind();

با تابع compare تست کردم اما بازه بین اون دو تاریخ رو برنمیگردونه. 

پنج شنبه, 08 بهمن 1394 14:33

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

پنج شنبه, 08 بهمن 1394 14:43
  var q = (from x in Mybank.TblRequestQuestions
                         join y in Mybank.TblUserProfles on
               x.MeliCode equals y.MeliCode
                         where (x.ReplyDate.CompareTo(TxtDate1.Text) <= x.ReplyDate.CompareTo(TxtDate2.Text))
                        select new
                          {
                              x.RequestQuestionID,
                              x.Name,
                              x.AdminReply,
                              x.Question,
                              x.QuestionDate,
                              x.ReplyDate,
                              y.LName
                          }).ToList();
                GridView1.DataSourceID = null;
                GridView1.DataSource = q;
                GridView1.DataBind();

 

پنج شنبه, 08 بهمن 1394 14:57

کد زیر را تست کنید

var q = (from x in Mybank.TblRequestQuestions
                       join y in Mybank.TblUserProfles on
             x.MeliCode equals y.MeliCode
                       where x.ReplyDate>=TxtDate1.Text&& x.ReplyDate<=TxtDate2.Text
                      select new
                        {
                            x.RequestQuestionID,
                            x.Name,
                            x.AdminReply,
                            x.Question,
                            x.QuestionDate,
                            x.ReplyDate,
                            y.LName
                        }).ToList();

 

پنج شنبه, 08 بهمن 1394 15:22

کدی که گفتین رو تست کردم منتها پیغام خطایی رو میبینم.

پنج شنبه, 08 بهمن 1394 15:23

متن خطا را قرار دهید

پنج شنبه, 08 بهمن 1394 15:38

دو طرف >= و یا >= نمیتونه از نوع string باشد

پنج شنبه, 08 بهمن 1394 15:45

مگه تو بانک از نوع nvarchar نیستند ؟

پنج شنبه, 08 بهمن 1394 16:29
پنج شنبه, 08 بهمن 1394 16:58

انکار تموم مشکل با "<" و با ">" است که نمیشناستشون

پنج شنبه, 08 بهمن 1394 20:15

با T-sql بنویسید ببینید مشکل حل میشه

db.Table.SqlAuery

پنج شنبه, 08 بهمن 1394 21:48

بنظر من مشکل رو از ریشه حل کن ممکنه باز جاهای دیگه به مشکل بر بخوری

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

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید