Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据库推送到PDA会导致使用RAPI2生成空数据库_C#_.net_Database_Sqlite_Rapi - Fatal编程技术网

C# 将数据库推送到PDA会导致使用RAPI2生成空数据库

C# 将数据库推送到PDA会导致使用RAPI2生成空数据库,c#,.net,database,sqlite,rapi,C#,.net,Database,Sqlite,Rapi,我有一个可用的OutPro 4,并在上面运行一个应用程序。 此应用程序使用SQLlite数据库 现在我也在它旁边运行了一个计算机程序,在这里我使用RAPI2来处理我的手持设备。 一旦我连接了我的设备,一个函数就会触发,它首先将我的数据库从我的手持设备拉到我的计算机上。 然后我用它做一些事情,然后把它推回。问题是返回的数据库总是0kb,并且没有数据,甚至没有表 //Create my Paths string myDevice = device.GetFolderPath(SpecialFolde

我有一个可用的OutPro 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文件放在我的电脑上。拉它,添加文本,推它,这也很好

所以唯一出错的是,当我尝试将一个完整的数据库推回到我的掌上电脑时,会产生一个0 KB的空数据库

有人知道这是为什么吗

莲花~


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

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

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

例如:

using(var connection = new SQLiteConnection(ConnectionString))
{
   try
   {
      connection.Open();
   }
   catch (Exception e)
   {
      throw new Exception(e.Message);
   }
   finally
   {
      connection.Close();
   }     
}  
对我来说,数据适配器也是如此


祝你将来好运,记住永远不要把自己置身于丹佛编码器的案例中。你早就应该回答这个问题了。

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

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

例如:

using(var connection = new SQLiteConnection(ConnectionString))
{
   try
   {
      connection.Open();
   }
   catch (Exception e)
   {
      throw new Exception(e.Message);
   }
   finally
   {
      connection.Close();
   }     
}  
对我来说,数据适配器也是如此

祝你将来好运,记住永远不要把自己置身于丹佛编码器的案例中。你早就该回答这个问题了