Как обновить определенные данные в SQLite в Xamarin

Я создал базу данных с использованием SQLite, в которой хранятся данные о студентах, включая

Student Name (String)
Student Password (String)
Student ID (String)
Student Attendance(Boolean)

В моем решении есть 3 контроллера представления, как описано ниже:

ViewController1: табличное представление, отображение списка учащихся.

ViewController2: обычный контроллер просмотра с 3 текстовыми полями и 1 кнопкой переключения для получения всех 4 сведений о пользователе.

ViewController3 : кнопка, которая позволяет пользователю нажать и включить посещаемость (логическое значение).


Я хотел бы обновить данные конкретного ученика (например, StudentName = Apple) с помощью кнопки ViewController3.

Чтобы вставить новые данные о студентах, код должен выглядеть следующим образом: *(По умолчанию посещаемость имеет значение "false")

void SaveButton_Clicked(object sender, EventArgs e)
{
    using (var connection = new SQLite.SQLiteConnection(pathToDatabase))
    {
        connection.Insert(new Student() { StudentName = AddStuNameTxt.Text, StudentId = AddStuIdTxt.Text, StudentPassword = AddStuPassTxt.Text, StudentAttendence = false});
        new UIAlertView("Updated !", "Student successfully created", null, "OK", null).Show();
    }
}

Но если я хочу обновить «Посещаемость» (логическое значение) до true в ViewController3, где имя ученика — «Apple». Могу я узнать, как это сделать?


person Xamarin Begineer    schedule 18.08.2018    source источник
comment
Проверьте мой обновленный ответ, удалите ContectInfo и сделайте его Student именем вашей таблицы.   -  person R15    schedule 18.08.2018


Ответы (1)


Используйте код ниже, где бы вы ни находились, например, внутри события нажатия кнопки. Но я бы посоветовал вам сделать это, используя StudentId вместо StudentName.

//get specific student record
var studentItem=GetSingleRecord("Apple")
studentItem.Attendance=true; 

//update record afermodification   
UpdateContact(studentItem)

Используемый выше метод выглядит следующим образом.

public Student GetSingleRecord(string Name)
{
  return connection.Table<Student>().FirstOrDefault(i => i.StudentName == Name);
}

public void UpdateContact(Student obj)
{
    connection.Update(obj);
}
person R15    schedule 18.08.2018