Die Konvertierung von varchar-Wert '9000437060' überlauf einer int-Spalte. Maximale integer-Wert überschritten

Ich habe Schwierigkeiten, herauszufinden, diese stack-trace, ist alles Weg von .Aber NET weil Ihr alle gebunden an eine MSSQL 2000 Server, dass der IT-admin ist nicht bereit zu aktualisieren, ich habe immer noch sehr viel niedriger Priorität apps, die eine Verbindung mit ihm, wenn etwas schief geht. Nomrally sehe ich nur einen stack, aber hier scheint es zwei. Ich kann auch nicht sagen, welche Datei es zu wollen, mich zu überprüfen, weil das Problem in der Regel ist bei der stack-Spitze? Tue ich das hauptsächlich PHP, also eine Menge von dieser ist ungewohnt für mich.

Die stack(s) sind hier.

[SqlException (0x80131904): The conversion of the varchar value '9000437060' overflowed an int column. Maximum integer value exceeded.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950890
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846875
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlDataReader.HasMoreRows() +157
   System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +197
   System.Data.SqlClient.SqlDataReader.Read() +9
   System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) +78
   System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +164
   System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +353
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +164
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +94
   MV.Library.UserHandler.GetByMaryvilleID(String maryvilleID) in C:\Code\MV\MV.Library\User.cs:333

[UserException: UserHandler()::Get: UserHandler - The conversion of the varchar value '9000437060' overflowed an int column. Maximum integer value exceeded.]
   MV.Library.UserHandler.GetByMaryvilleID(String maryvilleID) in C:\Code\MV\MV.Library\User.cs:341
   Apps.rewards.administrator.Event.btnAddAttendee_Click(Object sender, EventArgs e) in C:\Code\Web\Apps\Apps\rewards\administrator\Event.aspx.cs:122
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 

Von dem, was ich recherchiert

Die app versucht zu speichern, die mehr bytes in der Spalte als int-Typ ermöglicht. Ich plante zu ändern Tabelle Spalte vom Datentyp nvarchar oder "bigint" - aber Frage mich, ob das war alles, was ich tun musste? Würde nvarchar die bessere Wahl sein?

Vielen Dank im Voraus.

  • wenn Ihre Daten ist eigentlich eine Zahl, dann verwenden Sie einen numerischen Typ, z.B. vom Datentyp bigint. Sie sollten nicht speichern zahlen als strings. Nicht, es sei denn, Ihre zahlen sind SO groß, dass Sie überlauf bigint-Typen sowie.
InformationsquelleAutor Alex Howell | 2014-05-23
Schreibe einen Kommentar