DateTime для одного с C # - PullRequest
       12

DateTime для одного с C #

0 голосов
/ 26 апреля 2009

Я пытаюсь создать интерфейс между iTunes и MediaMonkeys. Когда я импортировал свои треки из iTunes в MM, поле LastPlayed не учитывалось.

Поэтому я решил создать интерфейс, который считывает значение из iTunes и обновляет базу данных MM.

Я использую пакет от phxsoftware для доступа к базе данных SQLite, используемой MM.

Поле базы данных представляет собой РЕАЛЬНЫЙ тип данных, который отображается как DbType.Single. Когда я делаю обновление, я конвертирую объект DateTime (предоставленный IITTrack) в Single, используя Convert.ToSingle (DateTime).

Но я получаю сообщение об ошибке, Invalid cast from 'DateTime' to 'Single'.

Есть намеки на это?

Ответы [ 2 ]

5 голосов
/ 26 апреля 2009
  1. SQLite не использует Single (32-битная одинарная точность), на самом деле он использует double (64-битную).
  2. Согласно http://www.mediamonkey.com/wiki/index.php/ISDBSongData::LastPlayed вам необходимо сделать следующее:

    LastPlayed.Subtract (новый DateTime (1899, 12, 30, 0, 0, 0, DateTimeKind.Utc)). TotalDays;

На самом деле лучше перенести эту постоянную дату на некоторое статическое значение только для чтения ...

P.S. Заметьте, что SQLite не отличается целыми числами, а числа с плавающей запятой НЕПРАВИЛЬНЫ - у него есть только 2 числовых типа - 8-байтовые числа с плавающей запятой и 8-байтовые числа.

2 голосов
/ 26 апреля 2009

DateTime имеет свойство Ticks типа long, так что вы можете легко преобразовать его в Single

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