2016-08-07 94 views
1

我有一個WorkAboutPro 4,在這我運行一個應用程序。 此應用程序使用SQLlite數據庫。將數據庫推到PDA結果與RAPI2空數據庫

現在我還運行一個計算機程序,在這裏我使用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檢測設備是否連接和推/拉文件,請讓我知道。

回答

0

所以我也面臨同樣的問題。 這很可能與您的Sqlite連接仍然處於打開狀態有關。

對我來說最好的解決方法是修改我的SqlDataAccess類並開始使用'using'。

例子:

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

對於我DataAdapters相同的工作。

祝你好運,並且永遠不要忘記自己在Denvercoder9的情況下。你很早以前就應該回答這個問題了。