安卓 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。
回答 ::: 对不起,这是我的错误。我通过使用 Database.method() 而不是 object(db) 在数据库中调用了一个方法。这使得 SQLiteDatabase 和 Cursor 对象在 Database.java 文件中是静态的。当我将其更改为 db.method() 并删除 static 关键字时,它工作正常。
感谢您的宝贵时间.. 很抱歉给您带来麻烦。