我的fetch();
函数
public Cursor fetch() {
String[] columns = new String[] { databaseHelper.teacher_ID,databaseHelper.teacher_Name,databaseHelper.Age,databaseHelper.Gender,databaseHelper.Salary,databaseHelper.subject};
Cursor cursor = database.query(databaseHelper.Table_Name, columns, null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
我的主叫处
final String [] from =new String[]{databaseHelper.teacher_ID,databaseHelper.teacher_Name,databaseHelper.Gender,databaseHelper.Age,databaseHelper.subject,databaseHelper.Salary
};
final int [] to =new int[]{R.id.id,R.id.name,R.id.age,R.id.gender,R.id.salary,R.id.subject};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbManger=new DBManger(this);
dbManger.open();
Cursor cursor= dbManger.fetch();
这是我的桌子
public final static String Table_Name="Teachers";
public static final String teacher_ID="_id";
public static final String teacher_Name="Name";
public static final String subject="subject";
public static final String Salary="salary";
public static final String Gender="gender";
public static final String Age="Age";
公共最终静态字符串DB_Name =“ School”;
public static final int Version=1;
private static final String Create_table="create table "+ Table_Name + "(" + teacher_ID +" INTEGER PRIMARY KEY AUTOINCREMENT , "+ teacher_Name +" TEXT NOT NULL, "+ subject +" TEXT NOT NULL , "+
Salary +" INTEGER NOT NULL , "+Gender+" TEXT NOT NULL, "+ Age+ " INTEGER NOT NULL);";
答案 0 :(得分:0)
考虑Create_table解析为字符串
create table Teachers(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT NOT NULL,
subject TEXT NOT NULL,
salary INTEGER NOT NULL,
gender TEXT NOT NULL,
Age INTEGER NOT NULL
);
哪个是有效的有效SQL,然后未找到该列的最可能的原因是实际上没有使用上述SQL。
最常见(如果不是最常见)的原因之一是由于对数据库帮助器(该类是SQLiteOpenHelper的子类)中的 onCreate 方法存在误解。
此 onCreate 仅在创建数据库本身时自动运行,除非删除数据库,否则将自动运行一次,在这种情况下, onCreate 方法将再次运行。>
因此,如果对数据库的结构进行了更改(例如,添加了新列),那么除非删除数据库,否则该更改将不会反映出来
解决该问题的方法很可能是执行以下一项操作:-
,然后重新运行该应用程序。