public class DB {
String []teacher_name={"Сергей", "Кирилл", "Дмитрий", "Дарья"};
String []teacher_surname={"Филатов", "Майборода", "Борисов", "Боброва"};
String []name_subject={"Линейная алгебра", "Программирование 1", "Программирование 2", "Математический анализ"};
String []emails={"filatovsrg94@gmail.com","emailKirill@mail.ru","borisovsky.n7@live.com","bobrova.94@bk.ru"};
private static final String DB_NAME = "SCBIdb";
private static final int DB_VERSION = 14;
private static final String DB_TABLE = "Teachers";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_PH = "img";
public static final String COLUMN_TNM = "T_name";
public static final String COLUMN_TSRNM = "T_surname";
public static final String COLUMN_SUB = "Name_subject";
private static final String DB_CREATE =
"create table " + DB_TABLE + "(" +
COLUMN_ID + " integer primary key autoincrement, " +
COLUMN_PH + " integer, " +
COLUMN_TNM + " text" +
COLUMN_TSRNM + " text"+
COLUMN_SUB + " text" +
");";
private final Context mCtx;
private DBHelper mDBHelper;
private SQLiteDatabase mDB;
public DB(Context ctx) {
mCtx = ctx;
}
// открыть подключение
public void open() {
mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
mDB = mDBHelper.getWritableDatabase();
}
// закрыть подключение
public void close() {
if (mDBHelper!=null) mDBHelper.close();
}
// получить все данные из таблицы DB_TABLE
public Cursor getAllData() {
return mDB.query(DB_TABLE, null, null, null, null, null, null);
}
// добавить запись в DB_TABLE
public void addRec(String name, String surname, String subject, int img) {
ContentValues cv = new ContentValues();
cv.put(COLUMN_TNM, name);
cv.put(COLUMN_TSRNM, surname);
cv.put(COLUMN_SUB, subject);
cv.put(COLUMN_PH, img);
mDB.insert(DB_TABLE, null, cv);
}
// класс по созданию и управлению БД
private class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
// создаем и заполняем БД
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_CREATE);
ContentValues cv = new ContentValues();
for (int i = 0; i < 4; i++) {
cv.put(COLUMN_PH, R.drawable.user_sam);
cv.put(COLUMN_TNM, teacher_name[i]);
cv.put(COLUMN_TSRNM, teacher_surname[i]);
cv.put(COLUMN_SUB, name_subject[i]);
db.insert(DB_TABLE, null, cv);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS '" + DB_TABLE+"'");
onCreate(db);
}
}
}
我尝试运行该应用程序,但日志显示该表的某些字段不存在。此外我已经在此程序中创建了一个数据库,但之后我多次升级了该版本。请帮助!
答案 0 :(得分:1)
COLUMN_PH + " integer, " +
COLUMN_TNM + " text" +
COLUMN_TSRNM + " text"+
COLUMN_SUB + " text" +
你的&#34;文本&#34;之后缺少一些逗号和空格。那列不会被创建
总是要确保你所有的逗号和空格都在应有的位置,大部分时间都是这样的错误问题。
和往常一样,卸载并重新安装应用程序或在更改后增加数据库版本代码。
答案 1 :(得分:0)
数据库列名是&#34; textT_surname&#34;,不是&#34; T_surname&#34; ,根据你的代码。 你搞砸了空白。