PDA

View Full Version : سوال: مشکل ذخیره تاریخ در دیتابیس



Rahgozare Paeez
پنج شنبه 28 مهر 1390, 13:52 عصر
سلام به همه دوستان
من در هر حال اتمام یه پروژه ای هستم که به یه مشکلی برخوردم که زمان زیادی از وقت منو گرفته و راههای زیادی تست کردم ولی همچنان حل نشده باقی مانده ...

در این پروژه نیاز دارم که تفاوت روزهای بین دو تاریخ رو بدست بیارم، واسه همین فیلد دو تاریخ رو از نوع date گرفتم و برای ذخیره تاریخ از دستور خیلی ساده DateTime.Now استفاده کردم و روی سیستم خودم خیلی راحت جواب می داد ولی وقتی سایت رو آپلود کردم خیلی عجیب بود که دو سه بار اول درست جواب داد ولی بعد از اون هر با پیغام خطای زیر مواجه می شم :


Conversion failed when converting date and/or time from character string


واقعا دیگه هنگ کردم، آخه تو کد من هیچ تبدیل رشته به تاریخ صورت نگرفته که این خطا رو می ده ... :افسرده:

لازم به ذکر که از پایگاه داده sql server 2008 هم استفاده می کنم ...

حالا از بین شما کسی می دونه که راه حل مشکل من چیه ؟! واقعا ممنون می شم اگر کسی بتونه کمک کنه این مشکل رو حل کنم، چون بخشی از این سایت رو آپلود کردم و باید زودتر این خطا برطرف بشه ...:ناراحت:

mohsen.nsb44
پنج شنبه 28 مهر 1390, 14:14 عصر
دوست عزیز شما میتونی از تابع substring استفاده بکنی
مثلا به کد زیر توجه کنید

txtDate.Text.Substring(5,2)
این کد باعث میشه که از کلمه 5 داخل تکست باکس به اندازه 2 کلمه جدا کنه
شما میتونید روز و ماه و سال رو با استفاده از این تابع از هم کم کنید

Rahgozare Paeez
پنج شنبه 28 مهر 1390, 15:27 عصر
مرسی از راهنماییتون
ولی من برای بدست آوردن تفاوت دو تاریخ از تابع DATEDIFF در داخل خود SQL استفاده کردم و مشکلی نیست، مشکل اینه که بعد از آپلود کردن سایت برای ذخیره کردن تاریخ در داخل دیتابیس خطا می ده ...

mohsen.nsb44
پنج شنبه 28 مهر 1390, 19:38 عصر
میشه متن خطا رو بزاری ببینیم چه خطایی داده؟

Rahgozare Paeez
پنج شنبه 28 مهر 1390, 22:46 عصر
Conversion failed when converting date and/or time from character string.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Conversion failed when converting date and/or time from character string.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:

[SqlException (0x80131904): Conversion failed when converting date and/or time from character string.] System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection) +1950522 System.Data.SqlClient.SqlInternalConnection.OnErro r(SqlException exception, Boolean breakConnection) +4856715 System.Data.SqlClient.TdsParser.ThrowExceptionAndW arning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1121 System.Data.SqlClient.SqlCommand.RunExecuteNonQuer yTds(String methodName, Boolean async) +192 System.Data.SqlClient.SqlCommand.InternalExecuteNo nQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +317 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137 DataAccessLayer.Docommand(String sql) +24 Register.NetRegister() +362 RegisterService_NetRegister.btnOk1_Click(Object sender, EventArgs e) +498 System.EventHandler.Invoke(Object sender, EventArgs e) +0 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111 System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) +110 System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

Mostafa_Dindar
پنج شنبه 28 مهر 1390, 23:00 عصر
سلام ،

لطفا برسی کنید که آیا داده نامعتبر در فید date ندارید ؟ مثلا روز 32 یا ماه 13 و ...

در غیر این صورت اگر به دستورات خودتون مطمئن هستید احتمالا این یک باگ (http://connect.microsoft.com/sql/feedback/ViewFeedback.aspx?FeedbackID=355655) از sql 2008 باشه .

موفق باشید

Rahgozare Paeez
شنبه 30 مهر 1390, 17:40 عصر
سلام

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

فکر نمی کنم داده نامعتبر داشته باشم چون مستقیما از تابع DateTime استفاده می کنم ...

خب حالا اگر این باگ از sql باشه باید چیکار کنم ؟؟

به نظرتون اگر از linq استفاده کنم امکانش هست که خطا نده؟

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

alibabaei2
شنبه 30 مهر 1390, 20:21 عصر
این ارور برای من رخ داده بود و زمانی بود که می خواستم اطلاعاتی رو از دیتا بیس بخونم اما اون فیلد دیتا بیسم null بود و با گذاشتن یک شرط مشکل حل شد.
شاید اون موقع که دارید از دیتابیس مس خونید در اون فیلد مقدار null ذخیره شده

asif1358
شنبه 30 مهر 1390, 20:50 عصر
سلام
فکر نکنم مشکل شما داده نا معتبر باشد؛ اصولا موقع تبدیل string به تاریخ این مشکلات پیش می آید. بهتر است به شکل ذیل عمل کنید:


string date = "01/08/2008";
DateTime dt = Convert.ToDateTime(date);

//یا
string s = "10/20/2010";
DateTime dt = DateTime.Parse(s);