Как удалить все элементы из SQLite в Android

Если это была проблема с пространством имен, есть возможность попытаться изменить две вещи в файле xslt:

  • добавить определение «моего» пространства имен в xsl: tagheet tag
  • использовать префикс «my:» при вызове элементов при перемещении xml-файла.

result

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:my="http://www.w3.org/2001/XMLSchema">
    <xsl:template match="/" >
        <soap:Envelope xsl:version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
            <soap:Body>
                <NewRoot xmlns="http://wherever.com">
                    <NewChild>
                        <ChildID>ABCD</ChildID>
                        <ChildData>
                            <xsl:value-of select="/my:MyRoot/my:MyChild1/my:MyData"/>
                        </ChildData>
                    </NewChild>
                </NewRoot>
            </soap:Body>
        </soap:Envelope>
    </xsl:template>
</xsl:stylesheet>
21
задан Brian Tompsett - 汤莱恩 23 July 2015 в 12:27
поделиться

4 ответа

db.delete (TABLE_NAME, null, null); правильный синтаксис для удаления всех строк в таблице. Но я думаю, что вы дали бы имя таблицы напрямую, не заключая его в двойные кавычки. Попробуйте вот так

db.delete("TABLE_NAME", null, null);

Это может помочь:)

16
ответ дан suraj 23 July 2015 в 12:27
поделиться

используйте этот код:

public void deleteAll()
{
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("delete from "+ TABLE_NAME);
    db.close();
}

вы можете добавить его в класс DatabaseHandler, это полный исходный код:

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
public static final String DATABASE_NAME = "OffLineMessagesClient";

// Contacts table name
public static final String TABLE_NAME = "messages_client";

// Contacts Table Columns names
private static final String KEY_ENTITY_ID = "entity_id";
private static final String KEY_MESSAGE = "message";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_NAME + "("
            + KEY_ENTITY_ID + " INTEGER,"
            + KEY_MESSAGE + " TEXT"
            +  ")";

    db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
                      int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

    // Create tables again
    onCreate(db);
}

public void deleteAll()
{
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("delete from "+ TABLE_NAME);
    db.close();
}
}
1
ответ дан Faxriddin Abdullayev 23 July 2015 в 12:27
поделиться

Одна вещь, которую вы можете попробовать при разработке на устройстве:

настройки >> приложения >> (имя вашего приложения) >> Хранение >> очистить кэш и очистить данные

, очистив данные приложения и кэш приложения, вы также стираете базу данных sql.

0
ответ дан Sm0k3Scr33n 23 July 2015 в 12:27
поделиться

На самом деле другой способ, которым я это сделал, - это DROP таблицы, а затем просто вызвать метод onCreate для SQLiteDatabase. Я не знаю, какой из них наиболее эффективен Delete или Drop, потому что я не особо задумывался о том, насколько эффективен каждый метод, но он прекрасно работает для меня, потому что в моей исходной базе данных у меня установлены некоторые значения по умолчанию, и поэтому когда я вызываю метод onCreate для базы данных, у меня там также есть некоторые методы PUT. Это сохраняет репликацию кода. (вместо того, чтобы выполнять удаление, а затем путы, я получаю многоцелевое назначение из моей функции onCreate).

Я называю это reset. Так что вам просто нужно сделать db.reset(), а затем значения по умолчанию будут добавлены в onCreate после того, как вы создадите свои таблицы.

public void reset () throws SQLException {
    db = DBHelper.getWritableDatabase ();
    db.execSQL ("drop table "+TABLE_NAME);
    db.close ();
    this.DBHelper.onCreate (this.db);
}
3
ответ дан mic4ael 23 July 2015 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: