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

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

کاربر سایت

کیایی

عضویت از 1393/09/25

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

  • پنجشنبه 8 بهمن 1394
  • 13:55
تشکر میکنم

با سلام

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

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

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

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 13 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 1394
  • 14:10

مشکل کجاست ؟

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

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

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 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 تست کردم اما بازه بین اون دو تاریخ رو برنمیگردونه. 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 1394
  • 14:33

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

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 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();

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 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();

 

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 1394
  • 15:22

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

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 1394
  • 15:23

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

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 1394
  • 15:38

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

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 1394
  • 15:45

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

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 1394
  • 16:29

بله هستن.

کاربر سایت

کیایی

عضویت از 1393/09/25

  • پنجشنبه 8 بهمن 1394
  • 16:58

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

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 8 بهمن 1394
  • 20:15

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

db.Table.SqlAuery

کاربر سایت

mahdisky

عضویت از 1392/11/13

  • پنجشنبه 8 بهمن 1394
  • 21:48

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

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)