База данных Xamarin Realm удаляет все записи

#xamarin #xamarin.forms #xamarin.android #xamarin.ios

#xamarin #xamarin.forms #xamarin.android #xamarin.ios

Вопрос:

У меня очень короткий вопрос, у меня есть проект, созданный с помощью Xamarin. Я использую realm db в этом проекте. И то, что я хочу сделать, это удалить все данные в realm db всякий раз, когда я нажимаю кнопку. Я могу сделать это в listview с выбранным элементом, но я хочу удалить все данные одной кнопкой.

Заранее благодарим вас за помощь. Stackoverflow многому меня научил.

Комментарии:

1. существует много, много существующих вопросов и сообщений об удалении всех записей из RealmDB. Вы смотрели на какие-либо из них?

2. извините, я немного новичок в таких сайтах, как stackoverflow, и мне это не пришло в голову, я буду более осторожен, спасибо

Ответ №1:

Я использую realm db в этом проекте. И то, что я хочу сделать, это удалить все данные в realm db всякий раз, когда я нажимаю кнопку. Я могу сделать это в listview с выбранным элементом, но я хочу удалить все данные одной кнопкой.

Если вы хотите удалить все записи Realm Db, пожалуйста, взгляните на следующий код.

Моя модель,

 public class Student : RealmObject
{
    [PrimaryKey]
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}
  

Главная страница

  <StackLayout>
        <ListView x:Name="listStudent">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout>
                            <Label Text="{Binding StudentName}" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

        <Button
            x:Name="Addbtn"
            Clicked="Addbtn_Clicked"
            Text="add data" />
        <Button
            x:Name="deletebtn"
            Clicked="deletebtn_Clicked"
            Text="delete all data" />
    </StackLayout>

public partial class Page30 : ContentPage
{
    
    public Page30()
    {
        InitializeComponent();
       
    }

    private void Addbtn_Clicked(object sender, EventArgs e)
    {
        var realmDB = Realm.GetInstance();

        for (int i = 0; i < 20; i  )
        {
            Student item = new Student()
            {
                StudentID = i,
                StudentName = "cherry "   i
            };
            realmDB.Write(() =>
            {
                realmDB.Add(item);
            });

        }

        List<Student> students = realmDB.All<Student>().ToList();
        listStudent.ItemsSource = students;
       
    }

    private void deletebtn_Clicked(object sender, EventArgs e)
    {
        var realmDB = Realm.GetInstance();
        
        realmDB.Write(() =>
        {
            realmDB.RemoveAll();
        });
        List<Student> students = realmDB.All<Student>().ToList();
        listStudent.ItemsSource = students;
    }
}