Как да актуализирате конкретни данни в 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();
    }
}

Но ако искам да актуализирам „Посещаемост“ (Boolean) до 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