我有一个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推/拉文件,请告诉我。
答案 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的情况下。你很久以前就应该回答这个问题了。