dev*_*v90 0 sql sqlite android android-sqlite
我正在尝试插入数据sqlite Database.我正在按照Youtube教程执行此任务.
我编写了以下代码并成功创建Sqlite Database file但是当我尝试插入数据时,它会给出错误消息.
我写了以下代码.请指导我在这里做错了什么.
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME="ep";
public static final String TABLE_NAME= "transactionsHistory";
public static final String ID= "ID";
public static final String MESSAGE= "MESSAGE";
public static final String CREATE_TABLE= "create table "+ TABLE_NAME + " ( "+ID+" INTEGER PRIMARY KEY AUTO INCREMENT, "+MESSAGE+" TEXT)";
public static final String DROP_TABLE= "DROP TABLE IF EXISTS"+ TABLE_NAME;
private Context context;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null , 1);
SQLiteDatabase db= this.getWritableDatabase();
this.context= context;
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertData(DatabaseHelper dbHelper , String Message){
SQLiteDatabase db= dbHelper.getWritableDatabase();
ContentValues contentValues= new ContentValues();
contentValues.put(MESSAGE, Message);
db.insert(TABLE_NAME, null, contentValues);
Log.d("Insert Successfull ", "Value : "+Message + " :Data Inserted");
}
Run Code Online (Sandbox Code Playgroud)
在Activity中调用DB类
public class SuccessActivity extends Activity {
TextView successMessage;
String failureMessage;
DatabaseHelper myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_success);
myDb= new DatabaseHelper(this);
myDb.insertData(myDb, "This is a Random Message ");
Run Code Online (Sandbox Code Playgroud)
错误
08-11 13:16:46.883: I/SqliteDatabaseCpp(22338): sqlite returned: error code = 1, msg = no such table: transactionsHistory, db=/data/data/com.example.ep/databases/ep
08-11 13:16:46.903: E/SQLiteDatabase(22338): Error inserting MESSAGE=This is a Random Message
08-11 13:16:46.903: E/SQLiteDatabase(22338): android.database.sqlite.SQLiteException: no such table: transactionsHistory: , while compiling: INSERT INTO transactionsHistory(MESSAGE) VALUES (?)
08-11 13:16:46.903: E/SQLiteDatabase(22338): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
08-11 13:16:46.903: E/SQLiteDatabase(22338): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
Run Code Online (Sandbox Code Playgroud)
您的表未创建,因为您的create table语句中有错误.应该有之间没有空格AUTO和INCREMENT-也就是说,它应该是:
public static final String CREATE_TABLE= "create table "+ TABLE_NAME + " ( "+ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+MESSAGE+" TEXT)";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |