2012-12-18 89 views
2

我在讀我的NexusOne中的SQLite數據庫並使用C#.Net將其讀取到我的電腦時感到有點皺紋。將SQLite數據庫讀爲C#文件#

在我的android應用程序的初始加載中,數據庫將從資產複製到/data/data/com.example.myapp/databasesOutputStream。這是代碼。

 //Open your local db as the input stream 
    InputStream myInput = myContext.getAssets().open(DB_NAME); 

    // Path to the just created empty db 
    String outFileName = DB_PATH + DB_NAME; 

    //Open the empty db as the output stream 
    OutputStream myOutput = new FileOutputStream(outFileName); 

    //transfer bytes from the inputfile to the outputfile 
    byte[] buffer = new byte[1024]; 
    int length; 
    while ((length = myInput.read(buffer))>0) { 
     myOutput.write(buffer, 0, length); 
    } 

    //Close the streams 
    myOutput.flush(); 
    myOutput.close(); 
    myInput.close(); 

我創建了一個C#程序讀取SQLite數據庫,但使用System.Data.SQLite初始化連接時,它總是拋出一個錯誤,「沒有這樣的表錯誤」。

當我在SQLiteConnection connection = new SQLiteConnection("Data Source=MyDB.db")中放置斷點時,connection.DataBase總是等於「main」。數據庫名稱應該是「MyDB」而不是「主」。似乎我的sqlite數據庫文件無法讀取,也許是因爲它是使用Stream創建的,或者可能是因爲它不是數據庫文件?因爲當我檢查文件類型時,它會顯示「文件」而不是「數據庫文件」。

任何人都有關於如何使用C#讀取sqlite數據庫文件的想法。我首先想到的是使用FileStreamStreamReader/StreamWriter。但我不知道如何開始。

回答

0

使用像SQLite Admin這樣的工具來查看數據庫中表格的名稱,或者即使可以打開它。然後一旦你有了這些信息,你應該可以用SQLiteConnection對象打開數據庫。

+0

感謝您的回覆。我正在使用SQLite數據庫瀏覽器瀏覽我的數據,我知道該表在那裏。 – klaydze

+0

@klaydze在某個網站上扔掉你的桌子,我會看看。 – AngryHacker