最近在做一个项目,使用C#语言开发了一个通过socket或者串口实时抓取日志的工具,使用了SQLite数据库进行日志的存储。工具在某一台特定的机器上运行时,抓取的日志文件只能在这台机器上查看,拷贝到其他机器上之后就无法打开,SQLite不认为该文件是数据库文件。怀疑和这台机器有关,但不知道具体是什么原因,暂时只发现了这一台机器比较特殊,其他的机器抓取的日志在别的机器上均能正常打开。
SQLite异常提示
通过debug发现,在打开数据库时发生的异常,即 conn.Open() 时进入了catch,使用sqlite3.exe尝试打开该文件,遇到了同样的问题,提示该文件不是数据库文件。
SQLiteConnection conn = new SQLiteConnection();
try
{
conn.ConnectionString = @"Data Source=" + dbfile;
conn.Open();
}
catch(Exception ex)
{
XtraMessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
conn.Close();
return;
}
在网上查了一圈,有的大神说数据库加密可能会导致该问题,我创建的数据库并未加密。目前没什么头绪,希望大神们给点建议!