こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

AndroidにおけるSQLiteの使い方について

Android Studioで、Androidのアプリを開発しています。
SQLiteを使おうとすると、
クエリを送るタイミングでアプリケーションが停止してしまいます。
何が悪いんでしょうか。

以下の様なソースコードで停止しました。


#MyDbOpenHelper.java

package com.example.test10;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
* Created by taiki on 13/06/16.
*/
public class MyDbOpenHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "board";
private static final String THREAD_TABLE_NAME = "thread";
private static final String THREAD_TABLE_COLUMN1 = "column1";
private static final String THREAD_TABLE_CREATE =
"CREATE TABLE " + THREAD_TABLE_NAME + " (" +
THREAD_TABLE_COLUMN1 + " text;";

MyDbOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(THREAD_TABLE_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {

}

}


#MainActivity.java

package com.example.test10;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

MyDbOpenHelper dbHelper;
dbHelper = new MyDbOpenHelper(MainActivity.this);
SQLiteDatabase db = dbHelper.getReadableDatabase();

db.execSQL("CREATE TABLE thread (threadNumber integer primary key autoincrement,mainText TEXT, createDate date);");


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

投稿日時 - 2013-06-17 16:26:37

QNo.8137936

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

MainActivity#onCreateメソッドで、
> db.execSQL("CREATE TABLE thread (threadNumber integer primary key autoincrement,mainText TEXT, createDate date);");
してるからじゃないですか?

その名前のテーブルはMyDbOpenHelperクラスで作成しているように見えます。

投稿日時 - 2013-06-17 21:11:27

あなたにオススメの質問