2015-11-02 61 views
-3

我在我的應用程序上有一個SQL數據庫。從SQL獲取項目數android

正如標題所說,我怎樣才能得到我的物品?

我的應用程序從用戶那裏獲取輸入並存儲在數據庫中並顯示它。

MainActivity.java 

String task = inputField.getText().toString(); 
Log.d("MainActivity",task); 

helper = new TaskDBHelperHome(MainActivity.this); 
SQLiteDatabase db = helper.getWritableDatabase(); 
ContentValues values = new ContentValues(); 

values.clear(); 
values.put(TaskContractHome.Columns.TASK, task); 

db.insertWithOnConflict(TaskContractHome.TABLE, null, values, 
     SQLiteDatabase.CONFLICT_IGNORE); 
updateUI(); 

TaskDBHelperHome.java 

public class TaskDBHelperHome extends SQLiteOpenHelper { 

    public TaskDBHelperHome(Context context) { 
     super(context, TaskContractHome.DB_NAME, null, TaskContractHome.DB_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase sqlDB) { 
     String sqlQuery = 
       String.format("CREATE TABLE %s (" + 
           "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
           "%s TEXT)", TaskContractHome.TABLE, 
         TaskContractHome.Columns.TASK); 

     Log.d("TaskDBHelper","Query to form table: "+sqlQuery); 
     sqlDB.execSQL(sqlQuery); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase sqlDB, int i, int i2) { 
     sqlDB.execSQL("DROP TABLE IF EXISTS "+TaskContractHome.TABLE); 
     onCreate(sqlDB); 
    } 
} 

TaskContractHome.java 

import android.provider.BaseColumns; 

public class TaskContractHome { 
    public static final String DB_NAME = "home"; 
    public static final int DB_VERSION = 1; 
    public static final String TABLE = "tasks"; 

    public class Columns { 
     public static final String TASK = "task"; 
     public static final String _ID = BaseColumns._ID; 
    } 
} 

我想知道如何計算數據庫中的項目。 (我的意思是編程)謝謝。

+1

downvoted缺乏嘗試。看看這裏:http://www.w3schools.com/sql/sql_func_count.asp – katzenhut

+0

你有沒有嘗試'SELECT Count(myColumn)AS someAlias FROM myTable'? 'AS someAlias'是可選的(但我推薦它)。 –

+0

對不起,我認識很少的數據庫:( –

回答

0

就像喝水一樣簡單!只需執行下面的SQL語句。

SELECT COUNT(*) 
    FROM [table_name] 

Cursor count= db.rawQuery(sql_string, null); 
count.moveToFirst(); 
int itemsCount= count.getInt(0); 
count.close(); 
+0

我在哪裏可以執行語句? –

+0

@BedrockDev無論你想得到點數 –

+0

@BedrockDev不要猶豫!如果你仍然需要更多的信息,請告訴我。 –