ตอนที่ 8 : Show Case 4 : Delete Data (iOS C# (Xamarin.iOS) and Mobile Services)
ตอนที่ 8 : Show Case 4 : Delete Data (iOS C# (Xamarin.iOS) and Mobile Services) ตัวอย่าง Show Case การเขียน iOS C# (Xamarin.iOS) กับ Mobile Services ด้วย Tools ของ Visual Studio เพื่อที่จะทำการลบ Delete ข้อมูลในที่อยู่ในตาราง Table ด้วยการแรับค่า Input ที่ต้องการลบ จากนั้นผู้ใช้สามารที่จะกรอกรหัสหรือ ID ที่ต้องการ (ในที่นี้จะใช้ Username เป็น Key) และในการลบจะมี Dialog สำหรับการ Confirm หลังจาก Confirm แล้วข้อมูลก็จะถูกลบออกจากรายการของ Table รวมทั้งลบออกจากรายการของ Mobile Services ที่อยู่บน Windows Azure
iOS C# (Xamarin.iOS) Mobile Services Delete Data
สำหรับขั้นตอนนั้นก็คือสร้าง Activity รับค่าผ่าน EditText เพื่อรอ User ทำการกรอกข้อมูลที่ต้องการลบ จากนั้นจะส่งข้อมูลซึ่งอารจะเป็น Key หรือ ID เพื่อเลือกรายการนั้น ๆ และลบออกจาก Table ของ Mobile Services ที่อยู่บน Windows Azure
รูปแบบการลบข้อมูลที่อยู่บน Azure Mobile Services ด้วย iOS C#
memberTable = client.GetTable<MyMember>();
//*** Get Data for Delete ***//
var items = memberTable.Where(item => item.Username == txtUsername.Text).ToCollectionAsync();
MyMember delete = items[0];
memberTable.DeleteAsync(delete);
Example ตัวอย่างการทำระบบลบข้อมูล Delete Data ด้วย iOS C#
ตอนนี้เรามี Mobile Services อยู่ 1 รายการ
ชื่อตารางว่า MyMember
มีข้อมูลอยู่ทั้งหมด 3 รายการ
กลับมายัง Xamarin.iOS C# Project บน Visual Studio
Main.axml
สร้างหน้าจอ View ประกอบด้วย Control ต่าง ๆ และ ID/Name ดังรูป
สร้าง Event เพื่อคลิกที่ Button สำหรับการ Delete
Event ที่ได้
RootViewController.cs (Code ทั้งหมด)
using System;
using System.Drawing;
using System.Collections.Generic;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using Microsoft.WindowsAzure.MobileServices;
using Newtonsoft.Json;
namespace iOSApp
{
public class MyMember
{
public int Id { get; set; }
[JsonProperty(PropertyName = "username")]
public string Username { get; set; }
[JsonProperty(PropertyName = "password")]
public string Password { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "email")]
public string Email { get; set; }
[JsonProperty(PropertyName = "tel")]
public string Tel { get; set; }
}
public partial class RootViewController : UIViewController
{
public const string ApplicationURL = @"https://thaicreate.azure-mobile.net/";
public const string ApplicationKey = @"IqeWShAjBflTUrTaaGUNJRyZDpcyeh72";
private MobileServiceClient client; // Mobile Service Client references
private IMobileServiceTable<MyMember> memberTable; // Mobile Service Table used to access data
public RootViewController(IntPtr handle)
: base(handle)
{
}
public override void DidReceiveMemoryWarning()
{
// Releases the view if it doesn't have a superview.
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
}
partial void btnDelete_TouchUpInside(UIButton sender)
{
var alert = new UIAlertView("Confirm Data", "Are you sure delete?", null, "OK", new string[] { "Cancel" });
alert.Clicked += (s, b) =>
{
client = new MobileServiceClient(ApplicationURL, ApplicationKey);
memberTable = client.GetTable<MyMember>();
// Confirm OK
if (b.ButtonIndex == 0)
{
//*** Get Data for Delete ***//
var items = memberTable.Where(item => item.Username == txtUsername.Text).ToCollectionAsync();
memberTable.DeleteAsync(items);
new UIAlertView("Result", "Delete Data Successfully", null, "OK", null).Show();
}
};
alert.Show();
}
}
}