-1

您好,我正在使用此代码将数据插入到我的数据库中。在另一个活动中,我使用光标,我可以单独查看 table1 或 table2 的数据。但如果我同时使用,我只能看到表 2 的数据。

当我使用游标获取数据时,我看到一个是空的。我想我没有正确插入数据。

我究竟做错了什么?

内容值 cv=new ContentValues();

//表格1

cv.put(idAttendance, 1);
cv.put(attendPlayer, "Tiago");

db.insert(AttendanceTable, idAttendance, cv);

    cv.put(idAttendance, 2);
    cv.put(attendPlayer, "Joao");
    db.insert(AttendanceTable, idAttendance, cv);


    cv.put(idAttendance, 3);
    cv.put(attendPlayer, "Pedro");

  db.insert(AttendanceTable, idAttendance, cv);

//表2

    cv.put(idTrainInd, 1);
    cv.put(TIindicator, "Remate Sucesso");
    db.insert(TrainingIndicatorTable, idTrainInd, cv);

    cv.put(idTrainInd, 2);
    cv.put(TIindicator, "Remate SEM Sucesso");
    db.insert(TrainingIndicatorTable, idTrainInd, cv);

仍然无法保存数据。

我的班级是这样的:

public class DatabaseHelper extends SQLiteOpenHelper {

private ... // database and tables


public DatabaseHelper(Context context) {
      super(context, dbName, null,33); 


}

SQLiteDatabase db = null;



@Override
public void onCreate(SQLiteDatabase db) {


//here i create all tables
db.execSQL("CREATE TABLE ... ) 


db=this.getWritableDatabase();


//THEN I USE THE CODE OF MY FIRST QUESTION

ContentValues cv=new ContentValues();

//TABLE 1
cv.put(idAttendance, 1);
cv.put(attendPlayer, "Tiago");

db.insert(AttendanceTable, idAttendance, cv);



cv.put(idAttendance, 2);
cv.put(attendPlayer, "Joao");
db.insert(AttendanceTable, idAttendance, cv);


cv.put(idAttendance, 3);
cv.put(attendPlayer, "Pedro");

db.insert(AttendanceTable, idAttendance, cv);


//TABLE2

//TABLE2
cv.put(idTrainInd, 1);
cv.put(TIindicator, "Remate Sucesso");
db.insert(TrainingIndicatorTable, idTrainInd, cv);

cv.put(idTrainInd, 2);
cv.put(TIindicator, "Remate SEM Sucesso");
db.insert(TrainingIndicatorTable, idTrainInd, cv);


//THEN I USE THIS TO RETURN GET THE DATA BUT TABLE TWO IS STILL EMPTY

/**Get all players from local database*/
public Cursor getPlayers() {

 //   db = this.getReadableDatabase();

    Cursor c=db.rawQuery("SELECT player FROM Attendancetabl", null);

    //c.close();
    return c;

}






/**Get all players from local database*/
public Cursor getIndicadors() {

   // db = this.getReadableDatabase();

    Cursor c=db.rawQuery("SELECT indicator FROM TrainingIndicador", null);

    //c.close();


    return c;

}

和第一个问题一样。

4

2 回答 2

0

尝试使用支持代码:

private void insertData(SQLiteDatabase base, String table, String columnHack, ContentValues values) {
    base.beginTransaction();
    base.insertWithOnConflict(table, columnHack, values, SQLiteDatabase.CONFLICT_REPLACE);
    base.setTransactionSuccessful();
    base.endTransaction();
}

然后只需调用您的 db.insert 这个代码:

insertData(db, TrainingIndicatorTable, idTrainInd, cv);
于 2013-06-04T23:14:34.507 回答
0

插入内容值的一段代码如下所示。

 private ContentValues initialValues;
    initialValues = new ContentValues();                    
                        initialValues.put("User_ID", User_ID);                      
                        initialValues.put("FirstName", FirstName);
                        initialValues.put("LastName", LastName);
                        initialValues.put("UserID",  UserID));
                        initialValues.put("Password",Password1);
                        initialValues.put("Email", Email);
                       mydb.insertTitle(initialValues,"CheckLogin"); 

// 这将是您插入值的数据库类或方法。希望这可以帮助你。

于 2013-06-05T12:57:03.207 回答