PDA

View Full Version : سوال: The state information is invalid for this page and might be corrupted.



sara70
پنج شنبه 11 شهریور 1389, 14:45 عصر
سلام دوستان

می دونید منشاء این ارور چیه؟ هر جای سایتم را ارورگیری می کنم با ارور جدیدی مواجه می شم. اول که ارور داد با



EnableViewStateMac="false"


مشکلش حل شد. اما حالا ارور زیر رو می ده. هر چی سرچ زدم چیزی پیدا نکردم.

The state information is invalid for this page and might be corrupted.


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.Web.HttpException: The state information is invalid for this page and might be corrupted.

Source Error:


[No relevant source lines]


Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temp orary ASP.NET Files\website2\31b7d488\79a62b86\App_Web_p_vuuaqh. 6.cs Line: 0


لطفا راهنمایی کنید. کم کم باید پروژه ام را تحویل بدم اما این ارور.....

aminghaderi
پنج شنبه 11 شهریور 1389, 17:12 عصر
ظاهرا ASP.NET یه مشکل با ترجمه قسمتی از برنامه شما پیدا کرده ؟! حالا این مشکل دقیقا مربوط به کجاست باید برسی بشه.
این صفحه ای باعث به وجود امدن چنین خطایی شده ضمیمه کنید ، اون طوری بهتر می شه فهمید مشکل کجاست .(کد های دیزاین و کد های سروری)

sara70
جمعه 12 شهریور 1389, 14:27 عصر
سلام
کدهاش رو گذاشتم.
توضیح مختصری درباره کدها:
در صفحه سفارش از سایتم،کاربر تعداد کتاب های مورد نیاز را در TextBox وارد کرده و دکمه "سفارش" را کلیک می کند. بعد از کلیک ارور میده.



SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["online storeConnectionString"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO order1(ID_book,ID_Customer,NumberOfOrder,Order_Dat e) values(" + Int32.Parse(Request["ID"]) + "," + Id_custom + "," + Int32.Parse(TextBox1.Text) + "," + dt + ")", con);
cmd.ExecuteNonQuery();

aminghaderi
جمعه 12 شهریور 1389, 15:36 عصر
["online storeConnectionString"]

اون وسطش فاصله داره ؟! شاید مشکل از اون باشه.



SqlCommand cmd = newSqlCommand("INSERT INTO order1(ID_book,ID_Customer,NumberOfOrder,Order_Dat e) values(" + Int32.Parse(Request["ID"]) + "," + Id_custom + "," + Int32.Parse(TextBox1.Text) + "," + dt + ")", con);
اون پارسه ظاهرا یه کلاس یا یه dll هست ؟؟؟ درسته؟؟؟
به نظرم مشکل شاید این هم باشه ، جای فیلد هاییی که از پارسه استفاده کردید یه مقدار رشته ای بدبد ببینید درست کار می کنه:


SqlCommand cmd = newSqlCommand("INSERT INTO order1(ID_book,ID_Customer,NumberOfOrder,Order_Dat e) values('AA','BB','CC','DD')", con);
در ضمن فیلد ها هم باید با فیلد های بانک مطابقات داشته باشه مثلا من اینجا فرض کردم تمام فیلد ها از نوع nvarchar هستند.
درضمن من تاحالا با این روش کار نکردم ، Trace کردنش رو شما یا دوستان دیگه انجامن بدید.
در ضمن این پروژه که احتمالا پروژه پایان نامه هست ولی برای پروژه های اصلی برای فرستادن فیلد به SqlConnection از پارامتر (Parameter) استفاده کنید.

موفق باشی.

sara70
جمعه 12 شهریور 1389, 19:02 عصر
دوست عزیز

اون کدی که نوشتید برای نوع nvarchar درسته .Int32.Parse از توابع کتابخانه ای است برای تبدیل به نوع int.

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

aminghaderi
جمعه 12 شهریور 1389, 21:18 عصر
اون کدی که نوشتید برای نوع nvarchar درسته .Int32.Parse از توابع کتابخانه ای است برای تبدیل به نوع int.

دلیل استفاده شما رو نمی دونم ولی شخصا از خود int32 استفاده می کنم (چه در وب و چه در ویندوز) و مشکلی هم تا حالا با هاش نداشتم.

برای ریختن اطلاعات در نوع DateTime باید از چه روشی استفاده کنمفیلد دیتابیس رو به nvarchar تغییر بدید و تاریخ رو به صورت رشته بهش بدید.

sara70
یک شنبه 14 شهریور 1389, 17:30 عصر
مشکل اینجاست که من دارم توی صفحه دیگه ای از پروژه ام با TimeSpan اختلاف زمانی رو بدست می آورم اگه nvarchar باشه چجوری اختلاف زمانی رو بدست بیارم؟

aminghaderi
یک شنبه 14 شهریور 1389, 19:40 عصر
مشکل اینجاست که من دارم توی صفحه دیگه ای از پروژه ام با TimeSpan اختلاف زمانی رو بدست می آورم اگه nvarchar باشه چجوری اختلاف زمانی رو بدست بیارم؟
من این کار رو می کنم رشته رو به 3 قسمت (روز- ماه - سال) برش می دم و داخل سه متغیر می ریزم.
a = روز
b = ماه
c = سال
خوب حالا سه متغیر که همگی عدد هستند در دست دارم.