我正在使用SQLite3库来阅读Chrome的历史记录。我成功阅读了历史记录,但是当我尝试插入数据时,数据被插入但未显示在Google Chrome的历史记录中。这是我要插入历史记录的代码:
SQLiteCommand Command = new SQLiteCommand();
Command.Connection = Connection;
Command.CommandText = "INSERT INTO urls(url,title,visit_count,typed_count,last_visit_time,hidden,favicon_id) VALUES ('My Website','http://coolsite.com',40,30,(@Date),0,0)";
SQLiteParameter DateParam = new SQLiteParameter("Date", DbType.Int64);
DateParam.Value = DateTime.Now.Ticks;
Command.Parameters.Add(DateParam);
Command.ExecuteNonQuery();
“历史记录”项目是使用此代码创建的,但如果在Google Chrome的“历史记录”标签中查看,则不会显示。我在插入和Chrome插入时发现的差异是TimeStamp。请参阅下面的屏幕截图:
http://i.imgur.com/64UXP2Z.jpg
如何正确添加行并将其显示在Chrome的“历史记录”标签中?
答案 0 :(得分:0)
为了正确地输入数据到Chromes'表格,首先您需要@Date
参数来适应Chrome的计算,显然是' webkit'格式,这个参数是非常准确的:
long chromeTime = ConvertToUnixTime(DateTime.UtcNow) + 11644473600) * 1000000;
public static long ConvertToUnixTime(DateTime aDateTime)
{
var epochTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return Convert.ToInt64((aDateTime - epochTime).TotalSeconds);
}
除此之外, 重要 部分是插入访问'使用匹配的id
和符合条件的值列出一行,例如:
INSERT INTO visits(id,url,visit_time,from_visit,transition,segment_id,visit_duration) VALUES (3,50,1.305334687E+16,0,805306368,0,0)
如果这不起作用,请尝试删除“网址”中的现有行。和'访问'表格首先。