· 8 years ago · Jul 30, 2018, 02:40 AM
1Cannot read from SQLite Database. Activity Crashes while trying to retreive data from cursor.
2public static final String KEY_ROWID = "ExpenseID";
3 public static final String KEY_Expense = "ExpenseDescription";
4 public static final String KEY_Amount = "Amount";
5
6 private static final String DATABASE_NAME = "CSolutionsLlcBudget";
7 private static final String DATABASE_TABLE = "Expense";
8
9 private static final int DATABASE_VERSION = 4;
10 private static final String CREATE_TABLE_1 = "CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
11 + KEY_Expense + "TEXT NOT NULL, " + KEY_Amount + "TEXT NOT NULL);";
12
13 private DbHelper ourHelper;
14 private final Context ourContext;
15 private SQLiteDatabase ourDatabase;
16
17 private static class DbHelper extends SQLiteOpenHelper{
18
19 public DbHelper(Context context) {
20 super(context, DATABASE_NAME, null, DATABASE_VERSION);
21 // TODO Auto-generated constructor stub
22
23 }
24
25 @Override
26 public void onCreate(SQLiteDatabase db) {
27 // TODO Auto-generated method stub
28 db.execSQL(CREATE_TABLE_1);
29 }//end of onCreate
30
31 @Override
32 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
33 // TODO Auto-generated method stub
34 db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
35 onCreate(db);
36 }
37
38 }//end of class
39 public BudgetInfo(Context c){
40 ourContext = c;
41 }
42
43 public BudgetInfo open() throws SQLException{
44 ourHelper = new DbHelper(ourContext);
45 ourDatabase = ourHelper.getWritableDatabase();
46 return this;
47 }
48 public void close(){
49 ourHelper.close();
50 }
51
52 public long createEntry(String expense, String amount) {
53 // TODO Auto-generated method stub
54 ContentValues cv = new ContentValues();
55 cv.put(KEY_Expense, expense);
56 cv.put(KEY_Amount, amount);
57 return ourDatabase.insert(DATABASE_TABLE, null, cv);
58 }
59
60 public String getData() {
61 // TODO Auto-generated method stub
62 String[] columns = new String[]{KEY_ROWID, KEY_Expense, KEY_Amount};
63 Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
64 String result = "";
65
66
67 int iRow = c.getColumnIndex(KEY_ROWID);
68 int iExpense = c.getColumnIndex(KEY_Expense);
69 int iAmount = c.getColumnIndex(KEY_Amount);
70
71 for(c.moveToFirst();!c.isAfterLast(); c.moveToNext()){
72 result = result + c.getString(iRow) + " " + c.getString(iExpense) + " " + c.getString(iAmount) + "n";
73 }
74 return result;
75 }
76
77public class SQLView extends Activity {
78 @Override
79 public void onCreate(Bundle savedInstanceState) {
80 super.onCreate(savedInstanceState);
81 setContentView(R.layout.sqlview);
82 TextView tv = (TextView) findViewById(R.id.tvSQLinfo);
83 BudgetInfo info = new BudgetInfo(this);
84 info.open();
85 String data = info.getData();
86 tv.setText(data);
87 info.close();
88 }
89}
90
91BudgetInfo info = new BudgetInfo(this);
92
93BudgetInfo info = new BudgetInfo(getApplicationContext());
94
95c.getString(cursor.getColumnIndex(iRow))
96c.getString(cursor.getColumnIndex(iExpense))
97c.getString(cursor.getColumnIndex(iAmount))
98
99private static final String CREATE_TABLE_1 = "CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
100 + KEY_Expense + "TEXT NOT NULL, " + KEY_Amount + "TEXT NOT NULL);";
101
102private static final String CREATE_TABLE_1 = "CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
103 + KEY_Expense + " TEXT NOT NULL, " + KEY_Amount + " TEXT NOT NULL);";