【问题标题】:Pushing DataBase to PDA results in empty database with RAPI2将数据库推送到 PDA 会导致使用 RAPI2 的空数据库
【发布时间】:2016-12-13 13:26:51
【问题描述】:

我有一个 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 推/拉文件,请告诉我。

【问题讨论】:

    标签: c# .net database sqlite rapi


    【解决方案1】:

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

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

    例子:

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

    对我来说,DataAdapters 也是如此。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多