android - SQL Lite 无法插入值
问题描述
更新
我正在尝试创建一个 DBHelper 类并复制旧代码上的所有内容。但是,我似乎无法插入其中。我不知道为什么,我试图在数据库中重新观看教程,但我的代码没有看到任何错误。你能检查一下这个代码吗?
DBHelper.Java
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "DBName.db";
public static final String TABLE_NAME = "tblSample";
public static final String COL_1 = "ID";
public static final String COL_2= "Title";
public static final String COL_3 = "Content";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table IF NOT EXISTS " + TABLE_NAME + " " +
"(id integer primary key autoincrement, Title text, Content text) ");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean insertValue (String title, String cnt) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, title);
contentValues.put(COL_3, cnt);
long result = db.insert(TABLE_NAME, null, contentValues);
return result != -1;
//note this code is returning false
}
public Cursor selectSample(){
//I also tried to use this.getReadableDatabase();
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery( "select * from " + TABLE_NAME, null );
return res;
//this is returning 0 count
}
}
这是我的代码MainActivity.java
mydb = new DBHelper(this);
boolean hasError = mydb.insertValue("Title1", "content1");
if(!hasError){
Toast.makeText(getApplicationContext(), "No Error:",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Not Inserted:",Toast.LENGTH_LONG).show();
}
此代码显示Not Inserted:
含义,我无法插入数据库
您能否告诉我原因或至少告诉我如何在插入数据时显示错误消息。这样我至少可以意识到错误
解决方案
只需重新安装您的应用程序并始终使用sqlitebrowser。以确保您的数据正确插入...我建议您使用Room lib作为其新的继任者
推荐阅读
- angular - Tab 键在模式对话框内的输入中不起作用(Angular 应用程序/PrimeNG)
- java - 测试休眠 OneToMany 映射
- .htaccess - 使用 .htaccess 将 root/dir 重定向到 root/new/dir
- awk - 表示人的姓名首字母和skype用户,其中skype用户以字母开头,以数字结尾;
- c# - 我的程序正在使用 Office 集成并针对没有 MS Office、C# 的窗口
- python - 在其他程序正在用 python 写入文件时读取文件
- vim - 有没有办法使用'。键而不是';' 在vim中重复内联搜索的键('f'键)
- sql - 在Oracle PlSql中的参数中添加不带逗号的字符串
- javascript - 从触发器内创建云存储桶中的文件
- angular - 使用 Angular HTTP 拦截器管理多个同时异步服务调用的加载器/微调器