I am storing data into SQLite table, and if data already exist(s) then updating it, and i am able to do that but whenever i update my existing record it saves another copy of that record...
DatabaseDataHelper.java:-
public class DatabaseDataHelper extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "Data";
// Table Name
private static final String TABLE_MEMBER = "Data";
public DatabaseDataHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_MEMBER +
"(Name VARCHAR(50) UNIQUE,"
" Title VARCHAR(50))");
Log.d("CREATE TABLE","Create Table Successfully - classs");
}
public long InsertData(String strName, String strTitle) {
try {
SQLiteDatabase db;
db = this.getWritableDatabase();
ContentValues Val = new ContentValues();
Val.put("Name", strName);
Val.put("Title", strTitle);
long rows = db.insert(TABLE_MEMBER, null, Val);
db.close();
return rows;
} catch (Exception e) {
return -1;
}
}
public long UpdateData(String strName, String strTitle) {
try {
SQLiteDatabase db;
db = this.getWritableDatabase();
ContentValues Val = new ContentValues();
Val.put("Title", strTitle);
long rows = db.update(TABLE_MEMBER, Val, "Name=?",
new String[] { String.valueOf(strName) });
db.close();
return rows;
} catch (Exception e) {
return -1;
}
}
public String[] SelectData(String strName) {
try {
String arrData[] = null;
SQLiteDatabase db;
db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_MEMBER, new String[] { "*" },
"Name=?",
new String[] { String.valueOf(strName) }, null, null, null, null);
if(cursor != null) {
if (cursor.moveToFirst()) {
arrData = new String[cursor.getColumnCount()];
arrData[0] = cursor.getString(0);
arrData[1] = cursor.getString(1);
}
}
cursor.close();
db.close();
return arrData;
} catch (Exception e) {
return null;
}
}
public boolean Exists(String strName) {
SQLiteDatabase db;
db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select 1 from Data where Name= ?", new String[] { strImageName });
boolean exists = (cursor.getCount() > 0);
cursor.close();
return exists;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBER);
onCreate(db);
}
public Cursor getAllData() {
String selectQuery = "Select * from "+ TABLE_MEMBER;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
return cursor;
}
}
InsertDataActivity.java:-
public boolean saveData() {
long storeData = databaseDataHelper.InsertData(txtName.getText().toString(), editTitle.getText().toString());
if (storeData <= 0) {
} else
storeData = databaseDataHelper.UpdateData(txtName.getText().toString(),
editTitle.getText().toString());
return true;
}