PDA

View Full Version : خطای تبدیل تاریخ



نسرین2000
یک شنبه 17 فروردین 1393, 08:32 صبح
سلام دوستان
من توی برنامه ام از یک تابع استفاده کردم به اسم ShamsiToMiladi که تاریخ شمسی رو به میلادی تبدیل می کنه .
تکه کد زیر برای ورود اطلاعات به بانک نوشتم و هیچ مشکلی نداره :
Dim objsuite As New SqlCommand
objsuite.Connection = objconnection
objsuite.CommandText = " insert into suite ( date_vorood , date_vorood1) values ( @date_vorood, @date_vorood1 )"
objsuite.Parameters.AddWithValue("@date_vorood", txtdate_v.Text)
objsuite.Parameters.AddWithValue("@date_vorood1", ShamsiToMiladi(CType(txtdate_v.Text, String)))
objconnection.Open()
objsuite.ExecuteNonQuery()
objconnection.Close()

اما همان کد را برای ویرایش نوشتم ولی خطای زیر را می دهد :
Conversion failed when converting date and/or time from character string
کد ویرایش هم به صورت زیر است :

Dim objsuite As New SqlCommand
objsuite.Connection = objconnection
objsuite.CommandText = "Update suite set date_vorood=@date_vorood , date_vorood1=@date_vorood1 )
objsuite.Parameters.AddWithValue("@date_vorood", txtdate_v.Text)
objsuite.Parameters.AddWithValue("@date_vorood1", ShamsiToMiladi(CType(txtdate_v.Text, String)))
objconnection.Open()
objsuite.ExecuteNonQuery()
objconnection.Close()

به نظر شما ایراد کارم کجاست که یک جا کد درست کار می کند ولی در جای دیگر خطا می دهد ؟

Mani_rf
یک شنبه 17 فروردین 1393, 09:27 صبح
این که خطا میده گویا مثلا نیست. باید بگی چه خطایی میده و حدالامکان از صفحه خطا و خطی که روی اون خطا میده عکس بگذاری.
متن خطایی که میده هم مشخص هست که دلیل چیه، مقداری که میخوای تبدیل کنه رو هم لازمه تا بدونیم که چیه

نسرین2000
یک شنبه 17 فروردین 1393, 10:11 صبح
متاسفانه من با گذاشتن عکس مشکل دارم و سیستمم هنگ می کنه نمی دونم چرا ؟:متفکر:
من توی تکس باکسم تاریخ ورد را وارد می کنم مثلا 1393/01/16 و دکمه ثبت را می زنم ، هم تاریخ شمسی و هم تاریخ میلادی آن ( توسط تابع ShamsiToMiladi ) در بانک ذخیره می شود .
هنگام ویرایش در فرم ویرایش آن تاریخ را تغییر می دهم مثلا 1393/01/17 و دکمه ویرایش را می زنم ولی از خط زیر ارور می گیرد .
objsuite.ExecuteNonQuery()
و این خطا هم مربوط به کد کد date_vorood1 است که از تابع ShamsiToMiladi استفاده کردم چون وقتی اون خط را از تکه کدم حذف می کنم خطا برطرف می شود .

نسرین2000
سه شنبه 19 فروردین 1393, 10:05 صبح
دوستان کسی نمی تونه مشکل من و حل کنه ؟؟؟؟؟؟؟؟:افسرده:

محمد آشتیانی
سه شنبه 19 فروردین 1393, 10:39 صبح
سلام
دو تا مسئله
1. چرا برای تاریخ دوم از CType استفاده کردی؟ قاعدتا مقدار TextBox خودش String هست
2. کوئری آپدیت شما هیچ شرطی نداره؟ یعنی با هربار آپدیت ، کل رکورد ها باید تغییر کنن؟

من احساس میکنم مشکل از کوئری آپدیت باشه ، یعنی چون میخواد همه رکورد ها رو آپدیت کنه یه تداخلی پیش میاد


موفق باشید

نسرین2000
شنبه 23 فروردین 1393, 09:19 صبح
سلام
من تاریخ رو در تکس باکس وارد می کنم و برای اینکه مشکلی پیش نیاد اون رو برای اطمینان بیشتر تبدیل به string می کنم
در مورد پاسختون که گفته بودید مشکل از کوری آپدیت هست باید بگم من چند تا تکس باکس دارم که کابر ممکنه همه اونها رو آپدیت کنه و یا ممکنه فقط یکی از اونها رو آپدیت کنه به هر حال من بدون شرط گذاشتم که همه تکس باکس ها رو شامل بشه و فکر نمی کنم مشکل از این باشه .
لطفا اگه چیز دیگه ای به ذهنتون می رسه کمک کنید با توجه به اینکه من عین همین کد را برای دکمه ثبت نوشتم و هیچ مشکلی ندارد .

محمد آشتیانی
شنبه 23 فروردین 1393, 13:40 عصر
سلام
منظورم از شرط کوئری ، بخش WHERE بود و ربطی به تعداد TextBox نداره ، منظورم اینه که مثلا اگر شما تو جدولت 1000 تا رکورد داشته باشی این کوئری همشونو آپدیت میکنه




موفق باشید

نسرین2000
یک شنبه 24 فروردین 1393, 08:09 صبح
ببخشید من شرط where رو اینجا فراموش کردم بذارم وگرنه تو برنامه خودم این شرط رو گذاشتم :
where guest_id=@guest_id و
objsuite.Parameters.AddWithValue("@guest_id", txtguest_id.Text)
لطفا اگه راه حل دیگه ای به نظرتون می رسه کمک کنید .

محمد آشتیانی
یک شنبه 24 فروردین 1393, 12:00 عصر
سلام
حقیقتش اینجوری خیلی سخته تشخیص اشکال ، حداقل یه عکس یا توضیح بیشتری اگر بشه بذاری شاید بتونیم کمکی کنیم




موفق باشید

نسرین2000
یک شنبه 24 فروردین 1393, 13:51 عصر
نمی دونم چرا نمی تونم عکس بذارم میشه شما کمککنید و بگید چه طوری باید عکس بذارم
وقتی می رم و آیکن insert imaje رو انتخاب می کنم سیستمم هنگ می کنه

محمد آشتیانی
یک شنبه 24 فروردین 1393, 14:01 عصر
شما عکس رو توی این سایت آپلود کن و لینک دانلودشو بذار

http://uploadboy.com/

behrooz69
چهارشنبه 27 فروردین 1393, 05:16 صبح
یه سوال چرا تاریخ هارو به شمسی و میلادی میگیری ؟؟؟

و یه تست : شما توی اپدیت به جای وارد کردن تاریخ شمسی تاریخ میلادی رو بزن فقط بعدثبت کن ببین مشکل نداره.

اخه من فکر میکنم شما واسه ثبت تاریخ شمسی رو به میلادی تبدیل میکنی بعد هم شمسی و هم میلادی رو تو دیتابیست ذخیره میکنی.

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

فقط واسم سواله که چرا به میلادی تبدیل میکنی .

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

بعدشم عکسی هم که از ارورر گرفتی رو تو سایت های رایگان عکس آپلود کن مثل Uploadkon.ir بعد لینکشو بذار اینجا مثل فرمایش دوستم.

نسرین2000
چهارشنبه 27 فروردین 1393, 09:48 صبح
ممنون از دوستانی که زحمت کشیدن و پاسخ دادن

آقا بهروز شما درست میگید من هم تاریخ شمسی و هم تاریخ میلادی رو در دیتابیس ذخیره می کنم . تاریخ میلادی رو برای محاسبه اختلاف روز در کریستال ریپورت نیاز دارم مثلا اگر شخصی تاریخ ورودش 25 فروردین بوده اون رو تبدیل به تاریخ میلادی می کنم تا بتونم اختلافش تا امروز که 27 فروردین هست و میشه دو روز رو محاسبه کنم چون یکی از دوستان بهم گفت اگه بخوای اختلاف روز رو با تاریخ شمسی محاسبه کنی برای سالهای کبیسه به مشکل برمی خوری :متفکر:
تستتون رو امتحان کردم ولی باز هم خطا داد:ناراحت:
دیروز یه فکری به ذهنم رسید و اون هم استفاده از کامپوننت HmFarsiCalander برای ثبت تاریخ بود و دیگه اون خطا رو نمی ده :لبخند:ولی یه سوال دیگه دارم اون رو تو تاپیک مطرح کردم به اسم " ثبت تاریخ در تکس باکس " میشه اون سوالم رو جواب بدید تا مشکلم کاملا رفع بشه ممنون

behrooz69
جمعه 29 فروردین 1393, 02:14 صبح
جوابتون داده شد

یا حق