PDA

View Full Version : مشکل در نوع داده با EF



csharpprogramer88
پنج شنبه 10 مرداد 1392, 13:53 عصر
سلام

من در جدولم در اس کیو ال فیلدی بنام قیمت دارم که نوع آنرا real تعریف کردم حالا چطوری میتونم مقدار تکست باکس را داخل این فیلد بریزم ؟

کد من با EF هست


tbl_kala table = new tbl_kala();
{
table.gheymat = txtprice.Text;

csharpprogramer88
پنج شنبه 10 مرداد 1392, 16:23 عصر
یعنی توی سی شارپ نمیشه به real تبدیل کرد؟

Mahmoud.Afrad
پنج شنبه 10 مرداد 1392, 16:41 عصر
برای چی real تعریف کردی؟ به هر حال معادلش Single(float) هست. http://msdn.microsoft.com/en-us/library/bb386947.aspx
ولی بعضی مقادیر با دقت اعشار بیشتر رو گرد میکنه که در محاسبات ممکنه مشکل ایجاد کنه به همین دلیل برای قیمت بهتره از دسیمال استفاده کنی.

csharpprogramer88
پنج شنبه 10 مرداد 1392, 16:53 عصر
برای چی real تعریف کردی؟ به هر حال معادلش Single(float) هست. http://msdn.microsoft.com/en-us/library/bb386947.aspx
ولی بعضی مقادیر با دقت اعشار بیشتر رو گرد میکنه که در محاسبات ممکنه مشکل ایجاد کنه به همین دلیل برای قیمت بهتره از دسیمال استفاده کنی.

اگه بخوام تبدیلش کنم چه کدی بنویسم؟



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

khokhan
پنج شنبه 10 مرداد 1392, 17:13 عصر
اگه بخوام تبدیلش کنم چه کدی بنویسم؟



به نظر شما توی اس کیو ال همه فیلد ها حتی مقادیری که محاسباتی هستند مثل قیمت کالا را nvarchar تعریف کنم و توی سی شارب ازش استفاده کنم روش خوبیه؟
توی این نمونه یه فیلد قیمت هست که توی بانک درستونی از نوع real ذخیره می شه
درضمن کمبوباکس اتوکامپلت رو هم که خواسته بودین درش پیاده کردم والبته با linq:لبخند:

khokhan
پنج شنبه 10 مرداد 1392, 17:50 عصر
توی این نمونه یه فیلد قیمت هست که توی بانک درستونی از نوع real ذخیره می شه
درضمن کمبوباکس اتوکامپلت رو هم که خواسته بودین درش پیاده کردم والبته با linq:لبخند:

البته اصلاحش می کنم الان با ممیز هم می تونی ثبت کنی :لبخند::لبخند:

hojjatshariffam
پنج شنبه 10 مرداد 1392, 19:02 عصر
سلام
میشه بگید EF چیه؟
EF یعنی Entity FrameWork
یه معامی برای ثبت داده هست که دات نت ساپورتش می کنه

hojjatshariffam
پنج شنبه 10 مرداد 1392, 19:27 عصر
البته اصلاحش می کنم الان با ممیز هم می تونی ثبت کنی :لبخند::لبخند:
خوخان جان خوبی؟
اسکیو ال اکسپرس شما ورژنش بالاست برا همین بچه هایی که سیستم قدیمی دارند و یا تو سیستمشون 2008 نصب نیست نمی تونن از mdf هاتون استفاده کنند ، من خودم که تو یه کامپیوترم مجبور می شم دیتا بیستو با 2008 باز کنم بعد دوباره با اکسپرس (2005) بسازم و بعد استفاده کنم ولی تو یکی دیگه که اکسپرس 2008 دارم مشکلی پیش نمیاد
پس اگه لطف کنی همشو با 2005 بسازی همه می تونن استفاده کنن (البته اگه امکان داشته باشه)
به هر حال ممنون
در ضمن اون پیاده سازی دسترسی کاربران رو براش یه روش پیدا کردم ، دارم روش کار می کنم
یه کامپوننت دارم می سازم که تو هر فرمی که لازم باشه از تولباکس میندازم و خود به خود به تمام کنترل هام اضافه میشه بعد تو هر کدوم از کنترل هام که بخوام اعمال کنم فقط کافیه که تکست اعتبار سنجیشو (مثلا کلید دسترسی ثبت شده در دیتا بیس مثل AllowAddNewUser) وارد کنم ، خودش اعتبار سنجی میشه

Mahmoud.Afrad
پنج شنبه 10 مرداد 1392, 21:17 عصر
به نظر شما توی اس کیو ال همه فیلد ها حتی مقادیری که محاسباتی هستند مثل قیمت کالا را nvarchar تعریف کنم و توی سی شارب ازش استفاده کنم روش خوبیه؟
هر Datatype ای برای ذخیره مقادیر متفاوتیه. نمیشه هر مقداریو توی nvarchar ذخیره کنی. در ثانی nvarchar برای ذخیره مقادیر یونیکد هستش که هر کاراکتر یونیکد دوبرابر اسکی حافظه اشغال میکنه.
یه مثال میزنم. عدد 123456789 رو در نظر بگیر. اگر بخواهی در ستونی از جنس varchar ذخیره کنی 9 بایت و در ستون nvarchar هجده بایت اشغال میکنه. در حالی که اگر ستون از نوع int باشه تنها 4 بایت اشغال میشه. پس نمیشه همینجوری دیتاتایپ رو یکسان در نظر گرفت.


http://stackoverflow.com/questions/628637/best-data-type-for-currency
http://stackoverflow.com/questions/693372/what-is-the-best-data-type-to-use-for-money-in-c
http://ithopes.com/myblog/blog/int-money-decimal-numeric-float-real-data-data-types-database

csharpprogramer88
پنج شنبه 10 مرداد 1392, 22:10 عصر
توی این نمونه یه فیلد قیمت هست که توی بانک درستونی از نوع real ذخیره می شه
درضمن کمبوباکس اتوکامپلت رو هم که خواسته بودین درش پیاده کردم والبته با linq:لبخند:

جناب khokhan از زحمت شما بابت کد ممنونم



objCourse.t_kala = int.Parse(textBox2.Text.ToString());
objCourse.price = int.Parse(textBox3.Text.ToString()); ;



من فقط اینجا دارم تبدیل میبینم و داره از Int.pars استفاده میشه شما فرمودی real تعریف شده در بانک کجا تبدیل به real شده؟

khokhan
پنج شنبه 10 مرداد 1392, 22:16 عصر
جناب khokhan از زحمت شما بابت کد ممنونم



objCourse.t_kala = int.Parse(textBox2.Text.ToString());
objCourse.price = int.Parse(textBox3.Text.ToString()); ;



من فقط اینجا دارم تبدیل میبینم و داره از Int.pars استفاده میشه شما فرمودی real تعریف شده در بانک کجا تبدیل به real شده؟

این کد مال نمونه اولی هست بعد" یی هو" :لبخند: یادمان آمد که ای دل غافل اگه داده اعشاری باشه جور در نمی آد....!!!! این بود که فوری اصلاحیه صادر شد:لبخند: ( پست 6)

m.sunset
جمعه 11 مرداد 1392, 16:55 عصر
سلام
چرا دیتابیس با sql2012 هم باز نمیشه؟

csharpprogramer88
جمعه 11 مرداد 1392, 18:41 عصر
سلام
چرا دیتابیس با sql2012 هم باز نمیشه؟


االان یعنی این سوال شما ست؟؟؟؟؟؟؟؟؟

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