【发布时间】:2015-08-11 11:49:00
【问题描述】:
我正在尝试将数据插入sqlite Database。我正在关注YoutubeTutorial 来完成这项任务。
我编写了以下代码,它成功创建了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");
}
在 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 ");
错误
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)
【问题讨论】:
-
我认为您已经更改了表名,并且在再次运行之前没有卸载应用程序。卸载应用程序并再次运行。看看这是否对您有帮助。
-
为什么是
myDb.insertData(myDb, ...?复制粘贴错误? -
我从
DDBMS中删除了sqlite database文件并重新启动应用程序..但问题仍然存在 -
它是
myDb.insertData(myDb, "This is a Random Message "); -
为什么需要那个参数?此外,您可能希望显示该方法的实现,因为错误发生在那里......
标签: android sql sqlite android-sqlite