PDA

View Full Version : تبدیل ستون نوع string با مقادیر long به نوع long در IQuryable



OmMiD_MtWo
شنبه 30 مرداد 1395, 16:08 عصر
با سلام
بنده یه فیلد در دیتابیس دارم که از نوع string است و قیمت ها رو در اون نگه میدارم، ولی برای جستجو به یه مشکل بزرگ برخوردم و اون هم این هست که به دلیل string بودن ستون نمیتونم بین دو قیمت خاص جستجو بزنم. چون داده هام در دیتابیس خیلی زیاد هستن و نمیخوام کوئری رو تبدیل به لیست کنم و بعد این کار رو انجام بدم، تاجایی که ممکنه میخوام فیلتر رو اعمال کنم و در نهایت داده ها رو از دیتابیس فرا بخونم. راهی برای اینکار هست؟
با تشکر

Mahmoud.Afrad
شنبه 30 مرداد 1395, 16:29 عصر
چرا نوعش را string گرفتید؟!!!

OmMiD_MtWo
شنبه 30 مرداد 1395, 16:33 عصر
اولش قرار بود جور دیگه پیاده سازی بشه ولی بعدش که داده وارد شد، پیاده سازی تغییر کرد و نمیشه الان تغییرش بدم چون کلی داده توش هست

mr.sirwan
شنبه 30 مرداد 1395, 16:37 عصر
من دقیق منظورتونو نگرفتم، الان مشکل کجاس؟؟؟ مگه نه اینکه واسه نوع داده ای string هم میشه شرط بازه ای اعمال کرد؟؟؟؟ پس مشکل دقیقا چیه؟

Mahmoud.Afrad
شنبه 30 مرداد 1395, 16:42 عصر
چرا نمیشه؟ نوع ستون رو به bigint و یا decimal تغییر بدید، داده ها هم تبدیل میشن. بعد از تغییر ، مدل رو آپدیت کنید.
قبل از تغییر حتما از دیتابیس بکاپ بگیرید.

OmMiD_MtWo
شنبه 30 مرداد 1395, 16:47 عصر
چه جوری باید شرط بازه ای به string اعمال کنم؟ این ارور رو میده:
cannot be applied to operands of type 'string' and string'

OmMiD_MtWo
شنبه 30 مرداد 1395, 16:48 عصر
من دقیق منظورتونو نگرفتم، الان مشکل کجاس؟؟؟ مگه نه اینکه واسه نوع داده ای string هم میشه شرط بازه ای اعمال کرد؟؟؟؟ پس مشکل دقیقا چیه؟
چه جوری باید شرط بازه ای به string اعمال کنم؟ این ارور رو میده:
cannot be applied to operands of type 'string' and string'

OmMiD_MtWo
شنبه 30 مرداد 1395, 16:50 عصر
چرا نمیشه؟ نوع ستون رو به bigint و یا decimal تغییر بدید، داده ها هم تبدیل میشن. بعد از تغییر ، مدل رو آپدیت کنید.
قبل از تغییر حتما از دیتابیس بکاپ بگیرید.
آخه خیلی جاها برای نمایش اطلاعات این قیمت هارو تبدیل کردم و تو خودشون ریختم! مثلا هر جا "0" بود به جای نمایش "0"، "قیمت ندارد" رو نشون بده! یه جوری switch case کردم! کدها خیلی زیاده برای تغییره

mr.sirwan
شنبه 30 مرداد 1395, 16:52 عصر
به این روش میتونین دوتا string رو باهم مقایسه کنین:
strvar1.CompareTo(strvar2)
این دستور اگر strvar1 کوچکتر از strvar2 باشه مقدار -1، درصورت برابر بودن، مقدار 0 و درصورتی که strvar1 از strvar2 بزرگتر باشه مقدار 1 رو برمیگردونه

امیدوارم مشکلتون حل بشه

OmMiD_MtWo
شنبه 30 مرداد 1395, 16:57 عصر
به این روش میتونین دوتا string رو باهم مقایسه کنین:
strvar1.CompareTo(strvar2)
این دستور اگر strvar1 کوچکتر از strvar2 باشه مقدار -1، درصورت برابر بودن، مقدار 0 و درصورتی که strvar1 از strvar2 بزرگتر باشه مقدار 1 رو برمیگردونه

امیدوارم مشکلتون حل بشه
دوست عزیز این مورد برای داده های string که ماهیتا عدد هستن ولی به صورت String ذخیره شدن کاربرد داره؟

mr.sirwan
شنبه 30 مرداد 1395, 16:59 عصر
بله برای هر نوع داده ای که داخل string ذخیره شده باشه کاربرد داره