代码:的SQLite的Android点击插入按钮后,它崩溃(插入按钮意味着用于创建和插入表和表值)
public class DatabaseOpenHelper extends SQLiteOpenHelper {
public String str=null;
public static final String TABLE_SPEECH = "takespeech";
public static final String COLUMN_ID = "id";
public static final String SPEECH_TEXT = "speech";
private static final String DATABASE_NAME = "speechtext.db";
private static final int DATABASE_VERSION = 1;
private SQLiteDatabase database;
private DatabaseOpenHelper dbHelper;
private static final String TABLE_CREATE =
"CREATE TABLE " + TABLE_SPEECH + "(" + COLUMN_ID +" INTEGER, " +
SPEECH_TEXT + " TEXT);";
DatabaseOpenHelper(Context context) {
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
Log.v("MainActivity", "after creation");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_SPEECH);
// Create tables again
onCreate(db);
}
public void open() throws SQLException {
database=dbHelper.getWritableDatabase();
}
public void close() {
database.close();
}
public void insert(String getpass) {
ContentValues cv=new ContentValues();
cv.put(COLUMN_ID, 1);
cv.put(SPEECH_TEXT,getpass);
// open();
database.insert(TABLE_SPEECH, null, cv);
// close();
}
public String readme() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT"+SPEECH_TEXT+"FROM"+TABLE_SPEECH,null);
if (cursor.moveToFirst()) {
str = cursor.getString(cursor.getColumnIndex(SPEECH_TEXT));
}
return str;
}
}
而且在Mainactivty一个按钮(是)添加和创建表和表值:单击此应用程序后崩溃。
yes.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
try {
createTable();
}
catch (SQLiteException se) {
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
}
}
});
这是功能,当用户点击Yes按钮和数据插入的onCreate()应该被调用,但然后当我点击是不KNWŸ崩溃调用。
public void createTable() {
DatabaseOpenHelper dbhelper=new DatabaseOpenHelper(getBaseContext());
dbhelper.getWritableDatabase();
dbhelper.insert(pass);
String a=dbhelper.readme();
TextView reads=(TextView)findViewById(R.id.textView2);
reads.setText(a);
}
请发布堆栈跟踪。 – Cornholio 2013-03-26 18:13:36
你需要通过在sqlite关键字之间放置空格来正确地格式化选择查询:'cursor cursor = db.rawQuery(“SELECT”+ SPEECH_TEXT +“FROM”+ TABLE_SPEECH,null);' – 2013-03-26 18:17:14
@ρяσѕρєяK但是OP说他得到异常他试图插入正确的..? – Pragnani 2013-03-26 18:21:26