アンドロイド 2.3.3
static String name = "Database";
static int version = 1;
static SQLiteDatabase sqlDB;
static Cursor c;
public Database(Context context) {
super(context, name, null, version);
// TODO Auto-generated constructor stub
sqlDB = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase sqlDB) {
// TODO Auto-generated method stub
sqlDB.execSQL("create table if not exists Operations(Command Text, Pos1 Text, " +
"Pos2 Text, Pos3 Text, Pos4 Text, Pos5 Text, Pos6 Text, Pos7 Text, Pos8 Text, Pos9 Text, Pos10 Text)");
insertData();
}
private void insertData() {
// TODO Auto-generated method stub
String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";
sqlDB.execSQL("insert into Operations values("+ addQuery +")");
//Exception at the above line
}
柱は全部で11本。
データベースに NULL を挿入できますか? はいの場合、データベースにデータを挿入しようとしている方法に問題はありますか?
rekire が指摘したように、問題は getWritableDatabase() にあるようです。Database db = new Database(this); でコンストラクターを呼び出しています。名前とバージョンのローカル変数を宣言し、ファクトリにnullを提供したため、これまで他のすべてのプロジェクトで機能していました。
答え ::: すみません、私のミスです。object(db) の代わりに Database.method() を使用して、データベース内のメソッドを呼び出しました。これにより、SQLiteDatabase および Cursor オブジェクトが Database.java ファイルで静的になりました。db.method() に変更し、 static キーワードを削除すると、正常に動作します。
お時間をいただきありがとうございます..そして、ご迷惑をおかけして申し訳ありません.