I am trying to do a simple login page where I am able to delete a specific contact with its details just by entering the username.
In other words, I would like to delete a specific row in my database.
public int deleteUsername(String content){
String whereClause = KEY_CONTENT1 + "= '" + content + "'";
return sqLiteDatabase.delete(MYDATABASE_TABLE, whereClause, null);
}
public int deletePassword(String content){
String whereClause = KEY_CONTENT2 + "= '" + content + "'";
return sqLiteDatabase.delete(MYDATABASE_TABLE, whereClause, null);
}
public void onClick(View v) {
String username = null;
String password = null;
username = this.txtnewuserinputedituser.getText().toString().toUpperCase();
password = this.txtnewpasswordinputedituser.getText().toString().toUpperCase();
switch (v.getId())
{
case R.id.btndeleteuser :
{
mySQL.openToWrite();
mySQL.deleteUsername(username);
mySQL.deletePassword(password);;
mySQL.close();
String toastText = "User Deleted";
Toast.makeText(getApplicationContext(), toastText, Toast.LENGTH_SHORT).show();
break;
}
}
}
Meaning that I would have to enter the username and password in the editview in order to delete that specific user. I found a few sources telling me to use something like this but I tried and it doesn't work. Is there any error?
public int deleteRow(String showId) {
String table_name = "MYDATABASE_TABLE";
String where = "showId='"+showId+"'";
return sqLiteDatabase.delete(table_name, where, null);
}
I would like to delete a specific row in my database just by taking the username. I input as the id for the row to be deleted. How to do so, or is there any alternatives that I can use?
You don't need to delete every entry in the row separately. The following method should delete the row where the username
field equals the passed userName
. The password
field and any other field in the row will be removed also.
public void deleteUser(String userName)
{
SQLiteDatabase db = this.getWritableDatabase();
try
{
db.delete(MYDATABASE_TABLE, "username = ?", new String[] { userName });
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
db.close();
}
}
EDIT: if you just copy the method, you won't have to open and close the DB manually any more, so your lines
mySQL.openToWrite();
mySQL.deleteUsername(username);
mySQL.deletePassword(password);;
mySQL.close();
would become just
mySQL.deleteUser(username);
you can use simple SQL query to delete specific row Acc to sql
DELETE FROM table_name WHERE some_column=some_value;
so use
db.execSQL("delete from " + Message.TABLENAME +" where specific_row_to_delete=\'" + user_name );
and if you have more then one where
condition then you can use AND
like
db.execSQL("delete from " + TABLENAME +
" where specific_row_to_delete=\'" + user_name +
"\' and condition_to_delete >= " + condtion_argument );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With