NexusOne から取得した SQLite データベースを読み取り、C#.Net を使用して PC に読み取る方法について頭の中で少ししわが寄っています。
Android アプリの初期ロードでは、データベースは Asset から/data/data/com.example.myapp/databases
asにコピーされOutputStream
ます。これがコードです。
//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();
SQLite データベースを読み取る C# プログラムを作成しましたが、System.Data.SQLite
それを使用して接続を初期化すると、常に「そのようなテーブル エラーはありません」というエラーがスローされます。
にブレークポイントを配置するとSQLiteConnection connection = new SQLiteConnection("Data Source=MyDB.db")
、常に「メインconnection.DataBase
」と等しくなります。データベース名は「main」ではなく「MyDB」にする必要があります。私の sqlite データベース ファイルが読み取れなかったようです。ファイルの種類を確認すると、「データベースファイル」ではなく「ファイル」と表示されているためです。Stream
C# を使用して sqlite データベース ファイルを読み取る方法については、誰でもアイデアを持っています。最初に頭に浮かぶのは、FileStream
and StreamReader
/を使用することStreamWriter
です。でも、どうやって始めたらいいのかわからない。