我正在尝试在iTunes和MediaMonkeys之间建立一个接口.当我将曲目从iTunes导入MM时,不考虑LastPlayed字段.
所以我决定构建一个从iTunes读取值并更新MM数据库的界面.
我正在使用phxsoftware中的软件包来访问MM使用的SQLite数据库.
数据库字段是REAL数据类型,映射为DbType.Single.当我进行更新时,我正在使用Convert.ToSingle(DateTime)将DateTime对象(由IITTrack提供)转换为Single.
但我收到一个错误,告诉他 Invalid cast from 'DateTime' to 'Single'.
关于这个的任何提示?
SQLite没有使用Single(单精度32位)它实际上使用双精度(64位).
根据http://www.mediamonkey.com/wiki/index.php/ISDBSongData::LastPlayed,您需要执行以下操作:
LastPlayed.Subtract(new DateTime(1899,12,30,0,0,0,DateTimeKind.Utc)).TotalDays;
实际上最好将该常量日期移动到某个静态只读值...
PS注释SQLite没有不同的整数和浮点数是错误的 - 它只有2种数字类型 - 8字节浮点数和8字节整数.