谷歌浏览器SQLite3插入数据
本文关键字:数据 插入 SQLite3 谷歌浏览器 | 更新日期: 2023-09-27 18:33:22
我正在使用SQLite3库来读取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的插入中发现的区别是时间戳。请参阅下面的屏幕截图:
https://i.stack.imgur.com/0MSnA.jpg
关于如何正确添加行并使其出现在Chrome的"历史记录"选项卡中的任何想法?
为了将数据正确输入到Chrome的表格中,首先您需要@Date
参数来适应Chrome对该参数的计算,显然是"webkit"格式,该参数(非常准确):
long chromeTime = ConvertToUnixTime(DateTime.UtcNow) + 11644473600) * 1000000;
其中转换为 Unix 时间:
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)
如果这不起作用,请先尝试从"网址"和"访问次数"表中删除现有行。