PDA

View Full Version : هنگام Run در Visual Studio مشکل نداره ولی بعد از Upload مشکل داره



maxpayn2
چهارشنبه 10 بهمن 1386, 09:37 صبح
سلام
من روی سرور Visual Studio نصب کردم ، پروژه رو تو اون Build میکنم و Succeeded میشه و بدون مشکل ریالعد هم میشه ، ولی وقتی Publish میکنم و روی همون سرور کپی میکنم تو wwwroot و در IE میزنم Localhost خطا میگیره و خطاش هم اینه :


A conversion of a char data type to a datetime data type resulted in an out-of-range datetime value

raravaice
چهارشنبه 10 بهمن 1386, 10:06 صبح
سلام

این error زمان اجرا پیش میاد شما یه جا تو برنامت میخوای یه مقدار رشته ای رو به تاریخ تبدیل کنی یا بریزی توی یه متغیر از نوع تاریخ که احتمالا overflow داره کد برنامت رو بررسی کن.

maxpayn2
چهارشنبه 10 بهمن 1386, 10:15 صبح
خب مگه وقتی توی visual studio اجرا میکنم همون شرایط رو نداره ؟کد به این صورته :



using System;


using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using FarsiLibrary.Utils;


public partialclass MasterPage : System.Web.UI.MasterPage


{


string roozs, mahs;


int roozi, mahi;


protectedvoid Page_Load(object sender, EventArgs e)




{


try


{


mahi = PersianDateConverter.ToPersianDate(DateTime.Now).T oString().Trim().IndexOf("/") + 1;

mahs = PersianDateConverter.ToPersianDate(DateTime.Now).T oString().Trim().Substring(mahi, 2);

roozi = PersianDateConverter.ToPersianDate(DateTime.Now).T oString().Trim().IndexOf("/", mahi) + 1;






roozs = PersianDateConverter.ToPersianDate(DateTime.Now).T oString().Trim().Substring(roozi, 2);


SqlDataSource2.SelectCommand = "SELECT * FROM [monasebat] WHERE [mah] = '" + Convert.ToInt32(mahs) + "' AND [rooz] = '" + Convert.ToInt32(roozs) + "' And [allowed] = 1";




SqlDataSource5.SelectCommand = "SELECT * FROM [tablo] WHERE [period] >= '" + System.DateTime.Now + "' And [allowed] = 1";


SqlDataSource7.SelectCommand = "SELECT * FROM [hamayesh] WHERE [period] >= '" + System.DateTime.Now + "' And [allowed] = 1";

}

catch (Exception ex)
{
Server.Transfer("~/ExceptionReport.aspx?id=" + ex.Message.ToString() + "&urle=" + Request.Url.ToString());
}
}
protectedvoid Timer1_Tick(object sender, EventArgs e)
{
//System.Threading.Thread.Sleep(5000);
GridView1.DataBind();
GridView2.DataBind();
GridView3.DataBind();
GridView4.DataBind();
GridView5.DataBind();
GridView6.DataBind();
GridView7.DataBind();
}
}











در دیتابیس mah و rooz از نوع int هستن و period از نوع datetime

maxpayn2
چهارشنبه 10 بهمن 1386, 15:15 عصر
درست شد ، با کمک فراوان جناب raravaice (http://barnamenevis.org/forum/member.php?u=37086) فهمیدیم که مشکل اینه که دستور select به صورت select * from tablo where period = 30-01-2008 and allowed = 1 در میاد ولی در دیتا بیس به صورت 01-30-2008 ثبت شده ، باز هم با کمک ایشون راه حل رو پیدا کردیم که این بود :
select * from tablo where period >= system.datettime.now.tostring("MM/dd/yyyy") and allowed = 1