Input string was not in a correct format.
- by Jon
I have this error which doesn't happen on my local machine but it does when the code is built by our build sever and deployed to the target server.
I can't work out what the problem is, after having spent many hours on this issue.
Here is an error trace:
[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7469351
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info) +35
System.String.System.IConvertible.ToByte(IFormatProvider provider) +46
System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +199
System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +127
System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges) +66
System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +285
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +251
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +476
System.Web.UI.WebControls.SqlDataSource.Select(DataSourceSelectArguments arguments) +19
Customer_NewTenancyList.BindReport(GridSortEventArgs e) +442
Customer_NewTenancyList.Page_Load(Object sender, EventArgs e) +345
System.Web.UI.Control.OnLoad(EventArgs e) +73
baseRslpage.OnLoad(EventArgs e) +16
System.Web.UI.Control.LoadRecursive() +52
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2170
Here is my own trace:
Begin PreInit
aspx.page End PreInit 3.12888928620816E-05 0.000031
aspx.page Begin Init 7.43111205474439E-05 0.000043
aspx.page End Init 0.00122138428208054 0.001147
aspx.page Begin InitComplete 0.00125379063540199 0.000032
aspx.page End InitComplete 0.00127781603527823 0.000024
aspx.page Begin PreLoad 0.00131022238859967 0.000032
aspx.page End PreLoad 0.00133424778847591 0.000024
aspx.page Begin Load 0.00135575890231859 0.000022
Page_Load 0.00145996209015392 0.000104
BindReport 0.0014856636807192 0.000026
Parameters add start: 30/03/2010 30/04/2010 0.0015569017850034 0.000071
Parameters add ended 0.00160048274291844 0.000044
Trace 1 0.00162450814279468 0.000024
Unhandled Execution Error
Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info)
at System.String.System.IConvertible.ToByte(IFormatProvider provider)
at System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider)
at System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges)
at System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges)
at System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control)
at System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList)
at System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)
at System.Web.UI.WebControls.SqlDataSource.Select(DataSourceSelectArguments arguments)
at Customer_NewTenancyList.BindReport(GridSortEventArgs e)
at Customer_NewTenancyList.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at baseRslpage.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
And here is my code:
Trace.Warn("BindReport")
Dim sds As New SqlDataSource
sds.SelectCommand = "C_MYSTORED_PROC"
sds.ConnectionString = ConfigurationManager.ConnectionStrings("connstring").ConnectionString
sds.SelectCommandType = SqlDataSourceCommandType.StoredProcedure
Trace.Warn(String.Format("Parameters add start: {0} {1}", dpFrom.Text, dpTo.Text))
sds.SelectParameters.Add(New Parameter("FROMDATE", DbType.DateTime, dpFrom.Text))
sds.SelectParameters.Add(New Parameter("TODATE", DbType.DateTime, dpTo.Text))
Trace.Warn("Parameters add ended")
Dim dv As DataView
Dim dt As DataTable
Trace.Warn("Trace 1")
dv = sds.Select(New DataSourceSelectArguments())
Trace.Warn("Trace 2")
If e IsNot Nothing Then
dv.Sort = String.Format("{0} {1}", e.SortField, e.SortDirection)
Trace.Warn("Trace 3")
Else
gvReport.CurrentSortColumnIndex = 0
gvReport.Columns(0).SortDirection = "DESC"
Trace.Warn("Trace 4")
End If
Trace.Warn("Trace 5")
dt = dv.ToTable()
Cache("NewTenancyList") = dt
Trace.Warn("Trace 6")
Trace.Warn("About to databind")
gvReport.DataSource = dt
gvReport.DataBind()
Trace.Warn("Databinded")
What I don't understand and this is really weird, why does it work on my local machine but not on the live server? If i build the code on my local machine then copy over the complete \bin directory it works. If I pull the code from source safe, build then copy, I get this error.
It seems to choke after the line "dv = sds.Select(New DataSourceSelectArguments())" in the code.