这是我正在使用的类
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_FILE = "Database.db";
private static final String TABLE = "Estudiantes";
private static final String FIELD_ID = "id";
private static final String FIELD_NAME = "nombre";
private static final String FIELD_GRADE = "calificacion";
public DBHelper(Context context){
super(context, DB_FILE, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE + "(" +
FIELD_ID + " INTEGER PRIMARY KEY, " +
FIELD_NAME + " TEXT, " +
FIELD_GRADE + " INTEGER);";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = "DROP TABLE IF EXISTS ?";
String[] params = {TABLE};
db.execSQL(query, params);
}
public void save(String nombre, int calificacion){
SQLiteDatabase db = getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put(FIELD_NAME, nombre);
valores.put(FIELD_GRADE, calificacion);
db.insert(TABLE, null, valores);
}
public int delete(String nombre){
SQLiteDatabase db = getWritableDatabase();
String clause = FIELD_NAME + " = ?";
String[] args = {nombre};
return db.delete(TABLE, clause, args);
}
public int find(String nombre){
SQLiteDatabase db = getReadableDatabase();
String filtrito = FIELD_NAME + " = ?";
String[] args = {nombre};
Cursor c = db.query(TABLE, null, filtrito, args, null, null, null);
int result = -1;
if(c.moveToFirst()) {
result = c.getInt(2);
}
return result;
}
}
这是我得到的错误消息:
E/SQLiteLog: (1) table Estudiantes has no column named calificacion
E/SQLiteDatabase: Error inserting calificacion=80 nombre=Fer
android.database.sqlite.SQLiteException:
table Estudiantes has no column named calificacion (code 1): , while compiling:
INSERT INTO Estudiantes(calificacion,nombre) VALUES (?,?)
看起来您稍后在数据库中添加了calificacion列。我将执行以下操作之一:
onupdate
方法中drop
和recreate
Estudiantes表,并在更改架构时增加db版本。问题内容: 当我尝试在数据库中放置新条目时,出现错误和下面显示的错误。我已经搜索了好几个小时,但无法检测到出了什么问题。任何输入都是极好的! 这是 LogCat 的 错误 。 我的 数据库文件 。 然后是我的 AddNewDay文件 。 这就是我在数据库中添加新条目的方式。 问题答案: 所以基本上我找到了解决方案。我仍然对它的愚蠢感到困惑。显然,数据库工作是我的超敏感材料!我的问题是我忘记了最后一
我知道有一些关于这个的话题,我试着去了解所有的答案,但是这对我的情况没有帮助。我一直收到错误,认为列SecondPhone不存在
无法在SQlite中创建列E/SQLiteLog:(1)表类没有名为idClass的列E/SQLiteDatabase:插入nameClass=122 idClass=122 Android.Database.SQlite.SQLiteException:表类没有名为idClass的列(代码1 SQLITE_ERROR):,编译时:插入类(nameClass,idClass)值(?,?)
一个简单的问题:有效吗? 换句话说:赋值是一种定义良好的行为,而枚举常量的值集中不存在这种行为吗? 演示:
案例2: 但是在第二种情况下,即使arraylist中没有项,它的大小也将得到mySignimgList2.size()=1。
问题内容: 我想从数据库中的表中获取列名列表。使用编译指示,我会得到一个元组列表,其中包含很多不需要的信息。有没有办法只获取列名?所以我最终可能会遇到这样的事情: [Column1,Column2,Column3,Column4] 之所以绝对需要此列表,是因为我想在列表中搜索列名并获取索引,因为很多代码中都使用了索引。 有没有办法得到这样的清单? 谢谢 问题答案: 您可以使用sqlite3和pep