Sql-Fehler "die Arithmetische operation hat einen überlauf verursacht."

Mir läuft ein Dienst, der macht einige Berechnungen und kommuniziert mit einer ms-sql-server jede minute oder so (24/7, die uptime ist sehr wichtig) und schreibt Fehler melden, wenn etwas lustiges passiert (wie ein timeout oder Verbindung verloren).

Dies funktioniert gut, aber einmal in eine Weile bekomme ich diese Fehlermeldung:

Arithmetische operation hat einen überlauf verursacht.

Da dies die Ausführung auf client-Seite, und die Ausnahme trat nur 3 mal, seit das Projekt gestartet wurde (ein paar Monate jetzt) diese wäre extrem schwer zu fangen und zu Debuggen.

Ich bin mit OleDbDataAdapter mit dem server kommunizieren. Die Daten, die vom server empfangen wurde nichts besonderes in irgendeiner Weise, dass ich mir bewusst bin, mindestens! Daten sollte nie mehr als Feldgrößen etc, also kann ich nicht wirklich denke, dass der Grund für diesen Fehler. Auch dies ist extrem schwer zu überprüfen, da ich alles was ich bekomme ist die Fehlermeldung.

Meine Frage ist: Warum wird dieser Fehler in der Regel erwachsen? Ich war nicht in der Lage zu finden keine wirklichen Informationen über Sie auf dem web, so dass, wenn jemand liefern könnte, der mich mit einigen Informationen würde sehr geschätzt werden.

Danke!

BEARBEITEN: EIN sorgfältiges Lesen der Fehler-Bericht zeigte mir, dass dieser Fehler tatsächlich aufgetreten ist, während das Füllen von DataTable-Objekt. Code sieht ungefähr so aus:

DataTable.Clear();
try
{
    oledbdataAdapter.Fill(DataTable, sqlString);
}
 catch (Exception e)
{
    //error has occured, report
}

Kann mir jemand den Sinn dieses?

EDIT2: ich habe gerade daran gedacht ... Ist es möglich, diese Ausnahme würde geworfen werden, weil das system nicht über genügend system-Ressourcen, um vollständige Füllung? Dies ist der einzige Grund, der mir einfällt, der erklären würde die exception aufgetreten. Es würde auch erklären, warum es tritt nur auf manchen Servern, und tritt nie auf dem dev-server ...

EDIT3: Hier ist die ganze Ausnahme für den Fall, es gibt niemanden mehr Einblick:

System.OverflowException: Arithmetic operation resulted in an overflow.
   at System.Data.DataTable.InsertRow(DataRow row, Int32 proposedID, Int32 pos, Boolean fireEvent)
   at System.Data.DataTable.LoadDataRow(Object[] values, Boolean fAcceptChanges)
   at System.Data.ProviderBase.SchemaMapping.LoadDataRow()
   at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   at INDAZajemService.INDAZajem.FillDataSet()
Schreibe einen Kommentar