簡體   English   中英

無法在 SQLite 數據庫 Android 上插入數據

[英]Can't insert Data on SQLite Database Android

我試圖在我的學生表數據中插入學生 Dethasails。 但顯示此錯誤: Error inserting STUDENT_ROLL=1 STUDENT_NAME=D _CID=4 android.database.sqlite.SQLiteException: no such table: STUDENT_TABLE (code 1): , while compile: INSERT INTO STUDENT_TABLE(STUDENT_ROLL,STUDENT_NAME,_CID) VALUES (?,?,?)

這是我的代碼:聲明表:-

public static final String STUDENT_TABLE_NAME = "STUDENT_TABLE";
public static final String S_ID = "_SID";
public static final String STUDENT_NAME_KEY = "STUDENT_NAME";
public static final String STUDENT_ROLL_KEY = "STUDENT_ROLL";

public static final String CREATE_STUDENT_TABLE = 
        "CREATE TABLE " + STUDENT_TABLE_NAME + "(" +
                S_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                C_ID + " LONG , " +
                STUDENT_NAME_KEY + " VARCHAR(255), " +
                STUDENT_ROLL_KEY + " INTEGER , " +
                " FOREIGN KEY (" + C_ID + ") REFERENCES " + CLASS_TABLE_NAME + "(" +C_ID+")" +");";

public static final String DROP_STUDENT_TABLE = " DROP TABLE IF EXISTS " + STUDENT_TABLE_NAME;
public static final String SELECT_STUDENT_TABLE = "SELECT * FROM " + STUDENT_TABLE_NAME;

添加學生 添加學生的方法。 c_id 是外鍵。

long addStudent(long c_id, String studentName, int studentRoll){
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(STUDENT_NAME_KEY,studentName);
    values.put(STUDENT_ROLL_KEY,studentRoll);
    values.put(C_ID, c_id);
    try{
        long s_id = sqLiteDatabase.insert(STUDENT_TABLE_NAME, null, values);
        return s_id;
    } catch (SQLException e){
        e.printStackTrace();
    }
    return -1;
}

日志中指出的問題是該表不存在。 您創建了用於創建表的 sqlite 語句,但我認為您沒有從任何地方執行它。 您必須在您的數據庫助手類中執行 sqlite 語句:

@Override
public void onCreate(SQLiteDatabase database) {
  database.execSQL(CREATE_STUDENT_TABLE);
}

您創建了用於創建表的查詢,但尚未在任何地方執行,您只需在執行插入之前執行它

  database.execSQL(CREATE_STUDENT_TABLE);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM