PDA

View Full Version : سوال: تبدیل رشته به اعشار در کوئری EF



davidrobert
چهارشنبه 13 تیر 1397, 20:51 عصر
دوستان کسی میدونه چطوری میشه مقدار رشته رو به اعشار تبدیل کرد برای بررسی مقدار داده. عمل تبدیل به این صورت انجام دادم و کلی اینترنت گشتم و برنامه Linqer استفاده کردم همش خطا میده.
این دستور بنده هستش

var q = from khered in db.Tbl_Khered
where
khered.KH_DateEnd == DateTime.Now &&
khered.KH_VazeyateMArjoye == false &&
khered.KH_DateEnd != khered.KH_DateBuild &&
khered.KH_Tedad_Kala != "0" && Convert.ToDecimal(khered.KH_Tedad_Kala)>0
select khered;

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

Convert.ToDecimal(khered.KH_Tedad_Kala)>0

تصاویر خطا
148498
لطفا راهی سراغ دارید همه نوع کد متحان کردم خطا میگیره دیگه کم آوردم ممنون میشم راهی سراغ دارید برای EF دارید بگید.

مهدی کرامتی
چهارشنبه 13 تیر 1397, 21:02 عصر
https://stackoverflow.com/questions/6688652/how-to-convert-a-string-to-decimal-in-a-linq-query

davidrobert
چهارشنبه 13 تیر 1397, 21:23 عصر
https://stackoverflow.com/questions/6688652/how-to-convert-a-string-to-decimal-in-a-linq-query

خیلی ممنون ولی درست مثل قبلی خطا داد.148499
بنده تمام این روش های امتحان کردم اینها روش های Linq هستش برای Ef فرق داره پیدا نکردم

مهدی کرامتی
چهارشنبه 13 تیر 1397, 21:30 عصر
یک سوال. چرا مقادیر اعشاری رو در دیتابیس به صورت استرینگ نگهداری کردی؟

davidrobert
چهارشنبه 13 تیر 1397, 21:33 عصر
یک سوال. چرا مقادیر اعشاری رو در دیتابیس به صورت استرینگ نگهداری کردی؟

به علت اینکه من جنس کیلوی دارم اگه Decimal قرار میدادم نقطه اعشار از بین میرفت که میشه گفت اگه 1.5 من جنس داشتم موقع ذخیره اعشار میرفت کنار و میشود 15 کیلو بخاطر این اتفاق نیفته باید اعشار قرار میدادم.

مهدی کرامتی
چهارشنبه 13 تیر 1397, 21:51 عصر
خوب اگر شما عدد اعشارت رو اینطوری تعریف کنی: Decimal(6,2) میشه یک عدد دارای اعشار که 6 رقم است، و دو رقمش بعد نقطه اعشار قرار می گیرد.

davidrobert
چهارشنبه 13 تیر 1397, 21:57 عصر
خوب اگر شما عدد اعشارت رو اینطوری تعریف کنی: Decimal(6,2) میشه یک عدد دارای اعشار که 6 رقم است، و دو رقمش بعد نقطه اعشار قرار می گیرد.

سلام مجدد من این کار رو انجام دادم الان هرچی اطلاعات داشتم خراب کرد و حتی به جنس های دونی هم برداشت سه رقم اعشار داد بهشون و مقدار سه رغم اعشار جنس های کیلوی رو از بین برد. روش دیگه سراغ ندارید چون برنامه اصلی من اطلاعات زیاد بهش دادم این بکاپ دیتابیس هستش و اطلاعات آسیب دید. روی ADO من این مشکلات ندارم قشنگ عملیات محسابه و تبدیل رشته به عدد رو انجام میدادم.

مهدی کرامتی
چهارشنبه 13 تیر 1397, 21:59 عصر
یعنی شما یک راست رفتی اون ستون استرینگ ات رو تبدیل کردی به Decimal ؟

درستش اینه یک ستون Decimal به اون جدول، کنار همون ستون قبلی اضافه کنی، بعد داده های هر ردیف که به صورت استرینگ نگهداری شده رو بخونی، تبدیل به دسیمال کنی، بریزی تو ستون جدید، بعد ستون قبلی رو حذف کنی.

davidrobert
چهارشنبه 13 تیر 1397, 22:17 عصر
شرمنده به چه صورت من هنگ کردم امکانش هستش anydesk بزنید و ببنید