Android SQLite从数据库中删除特定行
问题描述:
我正在尝试做一个简单的登录页面,我可以通过输入用户名来删除特定联系人的详细信息。Android SQLite从数据库中删除特定行
换句话说,我想删除我的数据库中的特定行。
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;
}
}
}
含义,我将不得不以删除特定用户输入的EditView中的用户名和密码。 我发现有几个消息来源告诉我使用类似这样的东西 但我试过了,它不起作用。有没有错误?
public int deleteRow(String showId) {
String table_name = "MYDATABASE_TABLE";
String where = "showId='"+showId+"'";
return sqLiteDatabase.delete(table_name, where, null);
}
我想只需拍摄的用户名删除在我的数据库中的特定行。我输入为要删除的行的ID。怎么做,或者有什么替代品可以使用?
答
您不需要分别删除行中的每个条目。以下方法应删除username
字段等于传递的userName
的行。 password
字段和该行中的任何其他字段也将被删除。
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();
}
}
编辑:如果你刚才复制的方法,你将不必打开和手动关闭数据库了,所以你的线条
mySQL.openToWrite();
mySQL.deleteUsername(username);
mySQL.deletePassword(password);;
mySQL.close();
将成为刚刚
mySQL.deleteUser(username);
答
您可以使用简单的SQL查询删除特定行 按照sql
DELETE FROM table_name WHERE some_column=some_value;
所以使用
db.execSQL("delete from " + Message.TABLENAME +" where specific_row_to_delete=\'" + user_name);
,如果你有一个以上where
条件,那么你可以使用像AND
db.execSQL("delete from " + TABLENAME +
" where specific_row_to_delete=\'" + user_name +
"\' and condition_to_delete >= " + condtion_argument);
答
的情况下,试试这个您的where子句包含不同类型的值。在从那里你调用这个方法delete()
方法
public void delete(int Cid,String username,String password)
{
SQLiteDatabase database = this.getWritableDatabase();
database.delete(TABLE_NAME, KEY_CID + "=" + Cid + " and " + KEY_UserName + "=" + username + " and " + KEY_Password + "=" + password, null);
database.close();
}
OR
public void delete(int Cid,String username,String password)
{
SQLiteDatabase database = this.getWritableDatabase();
database.execSQL("DELETE FROM " + TABLE_NAME+ " WHERE " +KEY_CID+ "= '"+Cid+"'AND "+KEY_Password+"='"+password+"'" +
"AND "+KEY_UserName+"='"+username+"'");
database.close();
}
传递参数。
例
favourite.delete(Courseid,Username,Password);
这里favourite
的是,我们在activity()
创建数据库对象,从中我们呼吁delete()
功能