【发布时间】:2021-06-11 18:28:56
【问题描述】:
我正在尝试将数据保存到 sqlite 数据库中,我环顾四周,但助手的结构总是这样,我无法找出问题所在。我没有得到任何异常,只是不可能将数据写入数据库
public class DBhelper extends SQLiteOpenHelper {
private static final String QR_TABLE = "QR_TABLE";
private static final String ID = "COLUMN_ID";
private static final String C_TEXT = "COLUMN_TEXT";
private static final String C_DATE = "COLUMN_DATE";
private static final String DB_NAME = "qreader.db";
public DBhelper(Context context) {
super(context, DB_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableStatement = "CREATE TABLE " + QR_TABLE + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + C_TEXT + " TEXT, "+ C_DATE + "TEXT)";
db.execSQL(createTableStatement);
}
public boolean addRow(String text, String date){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(C_TEXT, text);
cv.put(C_DATE, date);
long result = db.insert(QR_TABLE, null, cv);
db.close();
if(result == -1){
return false;
}
return true;
}
这是 MainActivity 文件
public class MainActivity extends AppCompatActivity {
protected static TextView tvresult;
private DBhelper db;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "NOT DELETED", Toast.LENGTH_SHORT).show();
db = new DBhelper(this);
Boolean res;
for(int i=0; i<30; i++){
res = db.addRow("Prova", "10");
if(res)
Log.w("myapp", "Added");
}
Log.w("App", db.getValues().toString());
...
在我的日志中,我看到 getValues() 的结果是空的,所以数据库没有被填满,并且“已添加”消息永远不会发送到 logcat。
【问题讨论】:
-
贴出getValues()的代码
标签: java android sqlite sqliteopenhelper