Androidでsqlliteデータベースを作成したと思いますが、挿入を行うたびに、列が存在しないと主張します。スキーマを表示するにはどうすればよいですか? オブジェクトの作成時に onCreate メソッドが呼び出されますか?
質問する
11873 次
3 に答える
13
コードでそれを行うことができます。Sqlite には、スキーマ情報を保持する「sqlite_master」というテーブルがあります。
/**
* Get all table Details from the sqlite_master table in Db.
*
* @return An ArrayList of table details.
*/
public ArrayList<String[]> getDbTableDetails() {
Cursor c = db.rawQuery(
"SELECT name FROM sqlite_master WHERE type='table'", null);
ArrayList<String[]> result = new ArrayList<String[]>();
int i = 0;
result.add(c.getColumnNames());
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
String[] temp = new String[c.getColumnCount()];
for (i = 0; i < temp.length; i++) {
temp[i] = c.getString(i);
}
result.add(temp);
}
return result;
}
より簡単な方法は、エミュレーターで実行することです。
- DDMS パースペクティブを開く
- 検索データ/データ/パッケージ名/データベース/YOURFILE
- 写真の右上にある pull from db ボタンをクリックします。
開ける
于 2013-01-18T00:06:06.813 に答える
1
データベースのスキーマを調べる別の方法はadb shell
、デバイス(またはエミュレーター)を調べることです。sqliteのコマンドラインを次のコマンドで起動し、コマンドプロンプトで入力しますsqlite3 <path to your database>
。.schema
于 2013-01-18T00:39:36.580 に答える