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

时间:2016-08-07 19:45:51

标签: c# .net database sqlite rapi

我有一个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);

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

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

有人知道为什么会这样吗?

莲花〜

编辑:如果您知道更好的方法来检测设备是否已连接并从PDA推/拉文件,请告诉我。

1 个答案:

答案 0 :(得分: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的情况下。你很久以前就应该回答这个问题了。