PDA

View Full Version : مبتدی: قرار دادن تقویم در گیرید



zhr.rezae66i
یک شنبه 22 بهمن 1391, 09:07 صبح
سلام
من یک boundField گذاشتم در گیرید و به فیلد تاریخ در دیتابیسم وصل کردم
مشکل نداشت و تاریخو نمایش داد
بعد این boundField رو به template تبدیل کردم و در visibledate ، مقدار Eval("Date") رو دادم
در selectedDateهم بایند همون بالاییو زدم
اما در اجرا به این بایند یا Eval من ایراد میگیره
و error اش اینه
Specified cast is not valid.

و
invalidCastException was unhandeled by user code
میشه راهنمایی کنید من کجا دارم اشتباه میکنم

ahmad156
یک شنبه 22 بهمن 1391, 09:41 صبح
لطفا کدتون رو بذارین

zhr.rezae66i
یک شنبه 22 بهمن 1391, 10:08 صبح
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Date") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Calendar ID="Calendar1" runat="server" SelectedDate='<%# Bind("Date") %>'
VisibleDate='<%# Eval("Date") %>'></asp:Calendar>
</ItemTemplate>
</asp:TemplateField>

ahmad156
یک شنبه 22 بهمن 1391, 10:18 صبح
مقداری که به عنوان Date به گرید میدن DateTime نیست.چک کنین ببینین داده های ارسالی null نباشه

zhr.rezae66i
یک شنبه 22 بهمن 1391, 10:24 صبح
داده ها null نیست چون همون داده ها وقتی به label میدم در text
مشکلی نداره و اجرا میشه
منظورتونو از datetime نمیفهمم
در دیتا بیس داده هام اینطورین مثلا
2000/04/09
در تقویم مقدار seleteddate و visible date رو به فیلده date از دیتا بیس وصل کردم که مقداریش بصورت 2000/04/09 ذخیره شده

ممنون از راهنماییتون

ahmad156
یک شنبه 22 بهمن 1391, 10:28 صبح
دوست عزیز شما باید برای تاریخ از DateTime (باید که نه ولی بهتره از نوی DateTime) توی DataBase استفاده کنین.تفاوتش رو سرچ کنین پیدا میکنین.در مورد نوع داده DateTime هم مطالب زیادی توی همین سایت هست.
نوع داده شما در DateBase از نوعString هست ولی نوع داده ای که GridView قبول میکنه DateTime هست و به همین خاطر خطا میده

hashemi85sep
یک شنبه 22 بهمن 1391, 10:30 صبح
سلام
اگه اشتباه نکنم مقداری که تو دستابیس ذخیره میکنید از نوع nvarchar هست
و calendar هم تاریخ رو از نوع datetime باید بهش بدی...

البته اگه اشتباه نکنم

ahmad156
یک شنبه 22 بهمن 1391, 10:33 صبح
سلام
اگه اشتباه نکنم مقداری که تو دستابیس ذخیره میکنید از نوع nvarchar هست

حرف شما هم صحیح هست توی DataBase چیزی به نام String نداریم

zhr.rezae66i
یک شنبه 22 بهمن 1391, 10:40 صبح
بله درسته
خب رفع شد.ممنون
آخه من که کلاس میرفتم میگفتن از نوع char(10) بگیرید. بخاطر اینکه بشه تاریخ شمسی هم نشون داد
منم دقت نکردم اینجا
آخه رنجdatetime به سالهای شمسی نمیخوره
حالا اگه تقویمم شمسی بود خودش نوع char میگیره لابد؟

hashemi85sep
یک شنبه 22 بهمن 1391, 10:53 صبح
شما برای نمایش تاریخ شمسی میتونید از DatePicker هم استفاده کنید
برای توضیحات و دانلود به این سایت مراجعه کنید
www.hasheminezhad.com (http://www.hasheminezhad.com)

ahmad156
دوشنبه 23 بهمن 1391, 07:44 صبح
همیشه توی DataBase از DateTime استفاده کنین و بعد توی برنامه اون رو تبدیل به شمسی کنین.در مورد تبدیل تاریخ میلادی به شمسی هم مطالب زیادی توی همین سایت هست