我正在创建一个小而简单的应用程序,用于我的扑克联赛。我创建了一个小型数据库,我只需输入玩家名称,将其取出,以及他们出去的地方。所有这些都可以。我需要做的是实现我使用的点数系统,以便数据库中的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});
}
}