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

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

کاربر سایت

fatimajahani

عضویت از 1393/04/11

تابع MAX در SQL SERVER

  • یکشنبه 18 مهر 1400
  • 18:41
تشکر میکنم

با سلام

کوئری

 select max(filed) from table_name

 در sql server درست کار نمی کند؟ 

من میخوام که در سی شارپ بیشترین مقدار فیلد را براساس دیتابیس دریافت کنم و به مقدار آن یکی یکی اضافه کنم.

کد به صورت زیر می باشد:

var q = (from p in db.account select p.fishNumber).Max()
               a = Convert.ToInt32(q);
               a++;

ولی به متغیر a مقداری اضافه نمی شود.

لطف می کنید راهنمایی کنید.

با تشکر

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

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

علی یوسفی

عضویت از 1400/05/20

  • چهارشنبه 21 مهر 1400
  • 08:42

دوست خوبم احتیاجی به تبدیل به اینتیجر نیست اگه به صورت عددی زخیره کردی تو بانکت.... دستورت هم کاملا درسته نمیدونم چرا اعمال نمیشه... ولی به عنوان یه دوست توصیه میکنم اگه  از entity استفاده کنی خیلی سریع تر و بهتره.....

تو انتیتی اینجوریه ولی کد خودت که توی لینک هست هم کاملا درسته...

var max = db.account.Max(p=>p.fishNumber)
max+=1;
db.Entry(max).State = EntityState.Modified;
db.SaveChanges();
کاربر سایت

fatimajahani

عضویت از 1393/04/11

  • سه شنبه 18 آبان 1400
  • 18:28

سلام

من فیلد رو با نوع داده nvarchar(50)  ذخیره کردم و اعداد 1 تا 10 داخل فیلد ذخیره شده است ولی وقتی که تابع max رو اجرا می کنم عدد 9 را نمایش می دهد.

ضمنا نوع داده رو به int تغییر دادم کوئری max داخل برنامه sql server درست اجرا می شود و عدد 10 را بعنوان بزرگترین عدد نمایش می دهد 

ولی داخل ویژوال استودیو این خطا را unable to cast object of type system.int32 to system.string  نمایش می دهد.

ممنون میشم راهنمایی کنید.

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

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

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

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