Проблема
Я сталкивался с некоторым существующим кодом, который выдает ошибку ниже, это использует .net Framework 4.5.2 и v4.0.30319 \ System.Data.dll
У меня естьУпростил пример кода до части, которая выдает ошибку.
Посмотрел декомпилированную dll и, похоже, там была ошибка, а также искал новую версию, которая исправляет эту ошибку, но, похоже, этопоследняя версия System.Data.
Тип данных БД bigint
Как бы я мог обновить данные строки таким образом, чтобы он учитывал значение int64, которое передается, и не имелон пытается конвертировать в int32?
Ошибка
Exception whilst flushing buffered appenders: System.ArgumentException:Value
was either too large or too small for an Int32.Couldn't store
<32370073298665472> in SerialisationTimeMilliseconds Column. Expected type
is
Int32. ---> System.OverflowException: Value was either too large or too
small
for an Int32.
at System.Convert.ToInt32(Int64 value)
at System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Data.Common.Int32Storage.Set(Int32 record, Object value)
at System.Data.DataColumn.set_Item(Int32 record, Object value)
--- End of inner exception stack trace ---
at System.Data.DataColumn.set_Item(Int32 record, Object value)
at System.Data.DataRow.set_Item(DataColumn column, Object value)
Код
private static void PopulateRow(long number, DataRow row)
{
row[0] = number;
}