none
C# Сохранение даты в Excel из MyAdapter.Update(MyDataSet.Tables[0]) RRS feed

  • Вопрос

  • Доброго времени суток!

    Использую OLEDB для создания  таблицы  Excel и вставки записей.

    После выполнения "MyAdapter.Update(MyDataSet.Tables[0])" в Excel-ле для ячеек с датой меняются местами день и месяц если число дней меньше 10. Если дата начинается с 10 и выше то все нормально.

    Вот что в таблице перед выполнением обновления адаптера:

    Вот что в Excel-ле после выполнения update:

    Не могу понять почему это происходит.

    Пробовал по всякому форматировать не помогает.

    Если делаю нормально для дней с 1 по 9, то получается все наоборот для дней с 10 по 31. 

    23 марта 2019 г. 4:17

Ответы

  • Причина была в использовании типа "Variant". Особый тип данных, который может содержать
    числовые, строковые, двоичные значения, даты, а также специальные значения Empty
    и Null (DBTYPE_VARIANT).
    Если не указан другой
    тип, предполагается этот тип.
    Соответствует
    Object.

    MyAdapter.InsertCommand.Parameters.Add("A",System.Data.OleDb.OleDbType.Variant,0, "W");         

    При использовании типов DBDate и Date проблем нет.

    MyAdapter.InsertCommand.Parameters.Add("A", System.Data.OleDb.OleDbType.DBDate, 0, "W");         

    MyAdapter.InsertCommand.Parameters.Add("A", System.Data.OleDb.OleDbType.Date, 0, "W");

    • Помечено в качестве ответа Y_VS 23 марта 2019 г. 13:59
    23 марта 2019 г. 13:59