I am creating my first android application, and I'm having issues with creating a 2nd table in my database.
This is my code:
(DatabaseHelper.java)
public class DataBaseHelper extends SQLiteOpenHelper {
public DataBaseHelper(Context context, String name,CursorFactory factory, int version)
{
super(context, name, factory, version);
}
// Called when no database exists in disk and the helper class needs
// to create a new one.
@Override
public void onCreate(SQLiteDatabase _db)
{
_db.execSQL(DatabaseFunc.DATABASE_CREATE);
_db.execSQL(DatabaseFunc.DATABASE_CREATE2);
}
// Called when there is a database version mismatch meaning that the version
// of the database on disk needs to be upgraded to the current version.
@Override
public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion)
{
// Log the version upgrade.
Log.w("TaskDBAdapter", "Upgrading from version " +_oldVersion + " to " +_newVersion + ", which will destroy all old data");
// Upgrade the existing database to conform to the new version. Multiple
// previous versions can be handled by comparing _oldVersion and _newVersion
// values.
// The simplest case is to drop the old table and create a new one.
_db.execSQL("DROP TABLE IF EXISTS " + "LOGIN");
_db.execSQL("DROP TABLE IF EXISTS " + "SMSREG");
// Create a new one.
onCreate(_db);
}
}
(DatabaseFunc.java)
public class DatabaseFunc
{
static final String DATABASE_NAME = "login.db";
static final int DATABASE_VERSION = 1;
public static final int NAME_COLUMN = 1;
// TODO: Create public field for each column in your table.
// SQL Statement to create a new database.
static final String DATABASE_CREATE = "create table "+"LOGIN"+
"( " +"ID"+" integer primary key autoincrement,"+ "USERNAME text,PASSWORD text, TEAMID text) ";
static final String DATABASE_CREATE2 = "create table "+"SMSREG"+"" +
"( " +"ID"+" integer primary key autoincrement,"+ "TONUM text, MESSAGE text, SUCCESS text) ";
// Variable to hold the database instance
public SQLiteDatabase db;
// Context of the application using the database.
private final Context context;
// Database open/upgrade helper
private DataBaseHelper dbHelper;
public DatabaseFunc(Context _context)
{
context = _context;
dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public DatabaseFunc open() throws SQLException
{
db = dbHelper.getWritableDatabase();
return this;
}
public void close()
{
db.close();
}
public SQLiteDatabase getDatabaseInstance()
{
return db;
}
public void insertEntry(String userName,String password)
{
ContentValues newValues = new ContentValues();
// Assign values for each row.
newValues.put("USERNAME", userName);
newValues.put("PASSWORD",password);
newValues.put("TEAMID", "0");
// Insert the row into your table
db.insert("LOGIN", null, newValues);
///Toast.makeText(context, "Reminder Is Successfully Saved", Toast.LENGTH_LONG).show();
}
public void insertNewSMS(String SMSNumber, String Message, String Success) {
ContentValues SMSPut = new ContentValues();
SMSPut.put("TONUM", SMSNumber);
SMSPut.put("MESSAGE", Message);
SMSPut.put("SUCCESS", Success);
db.insert("SMSREG", null, SMSPut);
}
public String DisplaySMS() {
String tempholder = "";
Cursor cursor1=db.query(false, "SMSREG", null, null, null, null, null, null, null);
cursor1.moveToFirst();
while (cursor1.isAfterLast() == false)
{
tempholder += ""+ cursor1.getString(cursor1.getColumnIndex("TONUM")) + ":@FIELDSEP@:" + cursor1.getString(cursor1.getColumnIndex("MESSAGE")) + ":@FIELDSEP@:" + cursor1.getString(cursor1.getColumnIndex("SUCCESS")) + ":@ROWSEP@:";
cursor1.moveToNext();
}
cursor1.close();
return tempholder;
}
public int deleteEntry(String UserName)
{
//String id=String.valueOf(ID);
String where="USERNAME=?";
int numberOFEntriesDeleted= db.delete("LOGIN", where, new String[]{UserName}) ;
// Toast.makeText(context, "Number fo Entry Deleted Successfully : "+numberOFEntriesDeleted, Toast.LENGTH_LONG).show();
return numberOFEntriesDeleted;
}
public String getSinlgeEntry()
{
Cursor cursor=db.query(false, "LOGIN", null, null, null, null, null, null, null);
if(cursor.getCount()<1) // UserName Not Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("PASSWORD"));
String username= cursor.getString(cursor.getColumnIndex("USERNAME"));
String teamids = cursor.getString(cursor.getColumnIndex("TEAMID"));
cursor.close();
return username + ":@SEP@:" + password + ":@SEP@:" + teamids;
}
public void updateEntry(String userName,String password)
{
// Define the updated row content.
ContentValues updatedValues = new ContentValues();
// Assign values for each row.
updatedValues.put("USERNAME", userName);
updatedValues.put("PASSWORD",password);
updatedValues.put("TEAMID", "0");
String where="USERNAME = ?";
db.update("LOGIN",updatedValues, null, null);
}
public void updateTeamID(String TeamID)
{
// Define the updated row content.
ContentValues updatedValuesa = new ContentValues();
// Assign values for each row.
updatedValuesa.put("TEAMID", TeamID);
db.update("LOGIN",updatedValuesa, null, null);
}
}
The Login table works fine, it creates, data gets put into it ok, and it's extracted OK, but according to the SQLite editor available for the emulator, the SMSREG table is never getting created... Hopefully someone can advise as I've been pulling hairs out for hours!! :)
I've tried adding and remove the semi-colon at the end of the SQL Statements but that doesn't seem to make a difference.
Your help in advanced would be very much appreciated.