PDA

View Full Version : مبتدی: کمک فوری در خصوص جمع مقادیر ستون دیتاگرید



soltanvafa
چهارشنبه 24 شهریور 1389, 20:29 عصر
با سلام
من یک بانک sql دارم که یکی از فیلدهاش به فرمت رشته، تاریخ در اون ذخیره شده. به فرمت مثلا 10:12:23. حالا می خوام بدونم چطور میشه این فیلد را در دیتاگرد بعد از انتقال جمع این زمانها را هم دید؟ ما که از بس جستجو کردیم و کتاب خوندیم خسته شدیم. یه مسلمون یه کمکی بکنه:تشویق:

sorenamusic
چهارشنبه 24 شهریور 1389, 21:14 عصر
سلام دوست عزیز
بهتر بود به فرمت date ذخیره می کردین .
اما اونطور که من فهمیدم . شما باید هر فیلد رو بخونی . تبدیل به DateTime کنی و بعد از تبدیل بهDateTime اونها رو با Timespan با هم جمع کنی .
امیدورام منظورتو درست فهمیده باشم

zayens
چهارشنبه 24 شهریور 1389, 21:42 عصر
برای جمع مقایر ستون دیتاگرید از کد زیر میتونید استفاده کنید

int sum = 0;
for (int i = 0; i < GrdViewFAC.Rows.Count; i++)
{
sum += int.Parse(GrdViewFAC.Rows[i].Cells["COLUMNSNAME"].Value.ToString().Trim());
}

sorenamusic
چهارشنبه 24 شهریور 1389, 23:50 عصر
برای date نمی شه از این استفاده کرد.

تاریخ رو نمیشه اینطوری جمع کرد

دوست عزیز شما این تاریخ رو میخوای واسه چی جمع بزنی ؟
و هدفت چیه؟

soltanvafa
پنج شنبه 25 شهریور 1389, 00:51 صبح
با سلام.
از اینکه مارو تحویل گرفتید ممنون. من می خوام مدت زمان کارکرد یک عده کارمند را با هم جمع کنم.با روش دوستمون zayens خطا می ده. این زمانها به فرمت رشته در بانک ذخیره شدن و به همین فرمت هم به دیتا گرید میان. واقعا نمیشه به راحتی چند تا تاریخ را باهم جمع کرد؟ واقعا اگر کمک کنید ممنون میشم.
--------------------
راستی با timespan مگه فقط برای تفاظل زمان نیست؟؟؟ چطوری با اون جمه بزنم؟؟؟

na3er-faraji
پنج شنبه 25 شهریور 1389, 11:21 صبح
از روش پست 3 استفاده کم .اما مستقیم زمانها رو جمع نزن اول یه تابع بنویس که زمانت رو به دقیقه تبدیل کنه بعد جمعشون بزن؟

zayens
یک شنبه 04 مهر 1389, 00:12 صبح
محاسبه اخلاف دو تاریخ
در روش زیر (ساخت خودم) تاریخ ها در رشته (string) به صورت مثلا 1389/07/20 در رشته ذخیره شده.
کار کد زیر اینه که میاد "ماه" را اگر در نیمه اول سال باشیم در 31 ضرب میکنه و اگر در نیمه دوم سال باشه در 30 ضرب میکنه و با "روز" جمع میکنه.
در رشته یا تاریخ دوم هم همین کار را میکنه و در نهایت دوتا عدد به واحد روز بدست میاد که میشه از هم کم کرد.



if (int.Parse(dateNow.Substring(5, 2)) <= 6)//اگر در فصل بهار یا تابستان هستیم
{
// *** محاسبه اختلاف دو تاریخ ***

mx = int.Parse(maxDate.Substring(5, 2)) * 31 + int.Parse(maxDate.Substring(8, 2));
Dnw = int.Parse(dateNow.Substring(5, 2)) * 31 + int.Parse(dateNow.Substring(8, 2));
lblEnghezaDAY = (mx - Dnw).ToString();//اختلاف در یک استرینگ قرارمیگیره

}
else if (int.Parse(dateNow.Substring(5, 2)) > 6 && int.Parse(dateNow.Substring(5, 2)) <= 12)//اگر در فصل زمستان یا پاییز هستیم
{
mx = int.Parse(maxDate.Substring(5, 2)) * 30 + int.Parse(maxDate.Substring(8, 2));
Dnw = int.Parse(dateNow.Substring(5, 2)) * 30 + int.Parse(dateNow.Substring(8, 2));
lblEnghezaDAY = (mx - Dnw).ToString();

}
برای ساعت هم به همین ترتیب میتونید عمل کنین.
کد جمع ستون های دیتاگرید را هم که در پست 3 گذاشته بودم