1

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

现在我还运行了一个计算机程序,在这里我使用 RAPI2 与我的手持设备一起工作。一旦我连接我的设备,就会触发一个功能,它首先将我的数据库从我的掌上电脑拉到我的电脑上。然后我用它做一些事情,然后继续把它推回去。问题是返回的数据库总是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 推/拉文件,请告诉我。

4

1 回答 1

0

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

最适合我的事情是修改我的 SqlDataAccess 类并开始使用“使用”。

例子:

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

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

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

于 2017-04-06T11:55:46.503 回答