System.Data.SqlTypes.SqlTypeException: переполнение SqlDateTime - PullRequest
2 голосов
/ 10 апреля 2011

Я пишу приложение в c # .net, которое работает с БД sql.У меня есть 5 полей - DateTime.Когда я нахожусь в режиме отладки, я вижу, что поля DateTime верны, но когда я запускаю приложение, я получаю следующее исключение - {System.Data.SqlTypes.SqlTypeException: SqlDateTime переполнение.Должно быть между 01.01.1753 12:00:00 и 31.12.9999 23:59:59.}

код -

         try
            {
                DateTime date = DateTime.MinValue;
                date = AllEventsSortedList[0].dateTime;
                foreach (Event m485 in _485List)
                {
                    CycleTbl nCycle = new CycleTbl();
                    nCycle._485_DateTime = m485.dateTime;
                    nCycle.OrderNumber = m485.OrderNumber;
                    nCycle.Source = m485.Source;
                    nCycle.Dest = m485.Destination;
                    foreach (Event m412 in _412List)
                    {
                        if ((m485.dateTime.Year == m412.dateTime.Year) && (m485.dateTime.Month == m412.dateTime.Month) && (m485.dateTime.Day == m412.dateTime.Day))
                            nCycle._412_DateTime = (DateTime)m412.dateTime;
                    }
                    foreach (Event m500 in _500List)
                    {
                        if ((m485.dateTime.Year == m500.dateTime.Year) && (m485.dateTime.Month == m500.dateTime.Month) && (m485.dateTime.Day == m500.dateTime.Day))
                            nCycle._500_DateTime = (DateTime)m500.dateTime;
                    }
                    foreach (Event m502 in _502list)
                    {
                        if ((m485.dateTime.Year == m502.dateTime.Year) && (m485.dateTime.Month == m502.dateTime.Month) && (m485.dateTime.Day == m502.dateTime.Day))
                        {
                            nCycle._502_DateTime = m502.dateTime;
                            nCycle.LGVNumber = (int)m502.LGVNumber;
                        }
                    }

                    nCycle._502_DateTime = (DateTime)date;
                    LgvDB.CycleTbls.InsertOnSubmit(nCycle);
                    LgvDB.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error in building the table." + Environment.NewLine + ex.Message);
            }

Может кто-нибудь сказать мнеВ чем может быть проблема?спасибо.

1 Ответ

4 голосов
/ 10 апреля 2011

.NET DateTime range :

Тип значения DateTime представляет даты и время со значениями в диапазоне от 12:00:00 до полуночи 1 января 0001 года.Era) до 23:59:59, 31 декабря 9999 г. н.э.С 1753 по 31 декабря 9999

SQL Server 2008 представил тип данных datetime2 , который имеет больший диапазон в соответствии с .NET DateTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...