使用 RAPI2 将数据库推送到 PDA 会导致数据库为空

Pushing DataBase to PDA results in empty database with RAPI2

我有一个 WorkAboutPro 4,我 运行 有一个应用程序。 此应用程序使用 SQLlite 数据库。

现在我还 运行 一个计算机程序,在这里我使用 RAPI2 与我的手持设备一起工作。 一旦我连接我的设备,就会触发一个功能,它首先将我的数据库从我的掌上电脑拉到我的电脑上。 然后我用它做了一些事情,然后继续把它推回去。问题是 returns 的数据库总是 0kb 并且没有数据,甚至没有表。

//Create my Paths
string myDevice = device.GetFolderPath(SpecialFolder.ProgramFiles);
string deviceFile = myDevice + @"\PPPM\SQL_PPPM.s3db";
string myComputer = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Substring(6);
string localFile = myComputer + @"\SQL_PPPM.s3db";

//Get the Database
RemoteFile.CopyFileFromDevice(device, deviceFile, localFile, true);

//Do Stuff
try
  ....
catch(Exception ex)
  ....

//Push The Database back
RemoteFile.CopyFileToDevice(device, localFile, deviceFile, true);

首先我认为这是因为我无法通过连接推送数据库。所以我试图将一个完整的数据库拉到我的电脑上。但这很好用。 然后我继续把一个空的 Txt 文件放在我的手上。拉它,添加文本并推它,这也很好用。

所以唯一出错的地方是当我尝试将一个完整的数据库推回我的 HandHeld 时,结果是一个 0kb 的空数据库。

有人知道这是为什么吗?

荷花~

编辑:如果您知道检测设备是否已连接以及来自 PDA 的 push/pull 文件的更好方法,请告诉我。

所以我也遇到了同样的问题。 这很可能与您的 Sqlite 连接仍处于打开状态有关。

最适合我的是修改我的 SqlDataAccess class 并开始使用 'using'.

示例:

using(var connection = new SQLiteConnection(ConnectionString))
{
   try
   {
      connection.Open();
   }
   catch (Exception e)
   {
      throw new Exception(e.Message);
   }
   finally
   {
      connection.Close();
   }     
}  

对我来说,同样适用于 DataAdapters。

祝你未来好运,记住永远不要让自己陷入 Denvercoder9 的困境。你早就应该回答这个问题了。