PDA

View Full Version : سوال: مشکل با Property از نوع Datetime



berjis
چهارشنبه 04 خرداد 1390, 19:49 عصر
سلام دوستان. من یه property از نوع datetime دارم .مقداری که برمیگردونه تاریخه ولی گاهی ممکنه هیچ مقداری نداشته باشه(یعنی هیچ تاریخی وارد نشه) در این صورت باید مقدار Null برگردونه چطور واسش تعریف کنم که مقدار Null برگردونه؟
از راهنماییتون ممنون.

berjis
چهارشنبه 04 خرداد 1390, 21:28 عصر
ای بابا یکی نیست جواب مارو بده. دوستان واقعا ضروریه لطفا هرکس میتونه راهنمایی کنه. ممنون

یوسف زالی
چهارشنبه 04 خرداد 1390, 22:00 عصر
با شرط گذاشتن نمی شه؟
اگر چیزی وارد نشه الان چی برمی گردونه؟
رو همون شرظ بذار که هر وقت اون بود null شه.
تو SQL هم می تونی همین کارو با case کنی

berjis
چهارشنبه 04 خرداد 1390, 22:09 عصر
منم میخواستم اگه خالی بود مقدار Null برگردونه ولی نشد. کار به Sql نمیرسه که. خود مقداری که Property برمیگردونه میخوام Null باشه.

raziee
پنج شنبه 05 خرداد 1390, 09:12 صبح
با استفاده از علامت سوال "؟" بعد از Data Type میتونید مشخص کنید که یک Object بتونه Nullable باشه یا نه.
به عنوان مثال:

DateTime? MyDate { get; set; }
string DateString
{
get
{
return (MyDate.HasValue) ? MyDate.Value.ToShortDateString() : string.Empty;
}
}

berjis
پنج شنبه 05 خرداد 1390, 10:04 صبح
از راهنماییتون ممنون. ولی من متوجه نشدم شما 2تا prpperty تعریف کردین؟ میشه بیشتر توضیح بدین؟ ممنون

raziee
پنج شنبه 05 خرداد 1390, 10:12 صبح
از راهنماییتون ممنون. ولی من متوجه نشدم شما 2تا prpperty تعریف کردین؟ میشه بیشتر توضیح بدین؟ ممنون
پراپرتی دوم رو فقط برای اطلاع از نحوه ی استفاده از DateTime زمانی که Nullable هست گفتم.


DateTime? MyDate { get; set; }
فقط همین دستور کافیه.
یک پراپرتی از نوع DateTime با نام MyDate و به طوری که مقدار Null رو هم در بر میگیرد.

berjis
پنج شنبه 05 خرداد 1390, 10:27 صبح
بله متوجه شدم خیلی ممنون. فقط یه سوال دیگه: چطور میتونم مقدار Null بودنش رو مقایسه کنم ؟ میخوام بگم اگر MyDate!= Null بود ولی اینجا Null رو نمیشناسه.؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟

raziee
پنج شنبه 05 خرداد 1390, 10:33 صبح
بله متوجه شدم خیلی ممنون. فقط یه سوال دیگه: چطور میتونم مقدار Null بودنش رو مقایسه کنم ؟ میخوام بگم اگر MyDate!= Null بود ولی اینجا Null رو نمیشناسه.؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟

دوست من بیشتر به پست ها توجه کن.
در همون مثال گفتم:

string DateString
{
get
{
return (MyDate.HasValue) ? MyDate.Value.ToShortDateString() : string.Empty;
}
}

گفتم اگر MyDate دارای مقدار بود، مقدارش رو نشون بده و اگر دارای مقدار نبود یعنی Null بود string.Empty رو برگردون.

MyDate!= Null
در C# باید null بنویسید نه Null


if (myDate!=null)
{
// do someting
}

berjis
پنج شنبه 05 خرداد 1390, 11:00 صبح
:خجالت:
دوست من بیشتر به پست ها توجه کن.
در همون مثال گفتم:

string DateString
{
get
{
return (MyDate.HasValue) ? MyDate.Value.ToShortDateString() : string.Empty;
}
}

گفتم اگر MyDate دارای مقدار بود، مقدارش رو نشون بده و اگر دارای مقدار نبود یعنی Null بود string.Empty رو برگردون.

MyDate!= Null
در C# باید null بنویسید نه Null


if (myDate!=null)
{
// do someting
}





دوست عزیز من مشکلم حل نشد این کد منه:




private DateTime? FirstDate

{



get { return Convert.ToDateTime(txtFirstDate.Text.Trim()); }





set { txtFirstDate.Text = Convert.ToString(value); }

}




ولی زمان اجرا خطا میده : String was not recognized as a valid datetime
والا من سر درنیاوردم شما خودتون فرمودین پراپرتی دوم رو ننویسم منم همین کارو کردم فقط همون اولی رو نوشتم. لطفا عصبانی نشید آخه همه که مثل شما حرفه ای نیستن

raziee
پنج شنبه 05 خرداد 1390, 22:20 عصر
به صورت زیر بنویسید:


private DateTime? FirstDate
{
get
{
if (string.IsNullOrEmpty(txtFirstDate.Text)) return null;

try { return Convert.ToDateTime(txtFirstDate.Text); }
catch { return null; }
}
set
{
txtFirstDate.Text = (MyDate.HasValue) ? MyDate.Value.ToShortDateString() : string.Empty;
}
}

کد ها واضح هستند اما اگه بازم سوال داشتید بپرسید.

berjis
جمعه 06 خرداد 1390, 11:00 صبح
سلام دوست عزیز. خیلی خیلی ممنون. حالا درست شد. راستی تو کد بالا در قسمت set بجای MyDate باید FirstDateرو میذاشتین (اینو برای دوستانی گفتم که ممکنه این تاپیک سوال خودشون باشه)
بازم ممنون.:لبخندساده: