2016-11-16 13 views
-1

Одно из моих приложений работает с 2005 года. Теперь это дает ошибку, упомянутую ниже.Значение было слишком большим или слишком маленьким для Int16 через много лет

Я не знаю, что произошло. Кто-нибудь сталкивался с такой проблемой?

Server Error in '/' Application. 
Value was either too large or too small for an Int16. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
Exception Details: System.Exception: Value was either too large or too small for an Int16. 
Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 
Stack Trace: 
[Exception: Value was either too large or too small for an Int16.] 
    Attach_DL.Generatekey() +121 
    Attach_BL.GenerateKey() +12 
    Picture.AddAttachments(String _attachpath, String _attachpathDB) +289 
    Picture.Btnsave_Click(Object sender, EventArgs e) +1416 
    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 
Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927 
+0

Я не могу вообще ничего рассказать из трассировки стека (т. е. обеспечить полезный код, на который ссылается трассировка стека). Я укажу, что максимальный размер для Int16 - '' 32767'' (положительный или отрицательный). Ваше приложение, в соответствии с stacktrace, пытается помещать нечто большее или меньшее, чем в переменную Int16. – Shadow

+1

Возможно, поле, которое вы используете в своем приложении с типом данных Int16, превысило значение 32767. – Hakunamatata

+0

Пожалуйста, отправьте исходный код 'Attach_DL.Generatekey()' –

ответ

1

подозревает, что результат содержит большее значение, которое Int16 не выдерживает. Все тип целого числа имеет различный диапазон следующие емкости

Int 16 -- (-32768 to +32787) 
+0

Я сохраняю такие же записи в течение многих лет. Нет поля, которое я даю огромное количество. Почему другие данные сохраняются по-прежнему? –

+1

@MuhammadFahad Первичный ключ? –

+0

нет Бро. На самом деле, мой вопрос заключается в том, почему он дает много ошибок в течение многих лет с тем же набором данных, который мы сохраняем раньше. –

0

Ваше поле может быть увеличен с 2005 года дает в настоящее время значения более 32787.

EF создает свое поле на основе типов БД числовых (5) может дайте int16, даже если он может содержать 99999