Android SQLite公式

时间:2016-01-11 14:05:31

标签: android database sqlite formulas

我正在创建一个小而简单的应用程序,用于我的扑克联赛。我创建了一个小型数据库,我只需输入玩家名称,将其取出,以及他们出去的地方。所有这些都可以。我需要做的是实现我使用的点数系统,以便数据库中的points列根据玩家离开锦标赛时自动填充玩家点数。我在这台电脑上没有我的代码,所以我会在这里尽力解释这个过程。

表格列:

[ID], [Player], [Hitman], [Rank], [Points]

正如我所说,该应用程序非常简单。我输入了出去的玩家名字(玩家),拿出他们的玩家(杀手),以及他们出去的地方(等级)。触摸“添加”会将此信息插入到DB中(ID列自动递增)。这会将DB填充到...

1...player1...hitman...18...null

2...player2...hitman...17...null    

-etc -

我需要添加我的点数公式,以便填充[Points]列。公式非常简单...... (50-(r*3)+(2*h)+(t-r))

* r =rank
* h=hits
* t=total players

例如,有18名球员和一名球员在取出另外两名球员后排在第15位。公式将按以下方式阅读:

* (50-(15*3)+(2*2)+(18-15)

* or (50-45+4+3)

...总共12分(是的,有些球员最终得到负分)。

如上所述输入数据后,如何编写代码以填充points列?

我正在使用Eclipse v4.2.1,目标SDK为19,并在galaxy s5上运行该应用程序。

感谢您的帮助!

以下是我对数据库代码的看法......     公共类DBHelper扩展了SQLiteOpenHelper {

public static final String DATABASE_NAME = "players.db";
public static final String TABLE_NAME = "player_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "HITMAN";
public static final String COL_4 = "PLACE";
public static final String COL_5 = "POINTS";

//variables to test formula
int rk, hits, seats;                                    // integer for Rank and Points
String formulaa = "(50-(3*rk)";                             // "(50-(3*rk)+(2*hits)+(rk-seats)";
String sqlPoints = "select "+formulaa+" AS "+COL_5+" from "+ TABLE_NAME;            // sql query string
        // To show points --> Cursor pts = db.rawQuery(sqlPoints, null);


public DBHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);                 // super (context, name, factory, version)

}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, HITMAN TEXT, PLACE TEXT, POINTS INTEGER)");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL ("DROP TABLE IF EXISTS " + TABLE_NAME);
    onCreate (db);

}

public boolean insertData(String name, String hitman, String place) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_2, name);
    contentValues.put(COL_3, hitman);
    contentValues.put(COL_4, place);
    long result = db.insert(TABLE_NAME, null, contentValues);
    if (result == -1)
        return false;
    else
        return true;

}

public Cursor getAllData(){
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor res = db.rawQuery("select * from  " + TABLE_NAME, null);

    return res;

}

public boolean updateData(String id, String name, String hitman, String place) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_1, id);
    contentValues.put(COL_2, name);
    contentValues.put(COL_3, hitman);
    contentValues.put(COL_4, place);
    db.update(TABLE_NAME, contentValues, "ID = ?", new String[]{id });
    return true;
}

public Integer deleteData(String id) {
    SQLiteDatabase db = this.getWritableDatabase();
    return db.delete(TABLE_NAME, "ID = ?", new String[] {id});

}

}

0 个答案:

没有答案