我使用Contact类创建一个SQl Lite
表并向其添加一些项目:
string dbpath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "dbTest.db3");
var db = new SQLiteConnection(dbpath);
db.CreateTable<Contact>();
Contact contact1 = new Contact("ssS","555");
Contact contact2 = new Contact("ddd","444");
Contact contact3 = new Contact("ggg","111");
db.Insert(contact1);
db.Insert(contact2);
db.Insert(contact3);
这是我的联系人课程:
public class Contact
{
public string Name { get; set; }
public string PhoneNumber { get; set; }
public Contact(String name,string phone)
{
Name = name;
PhoneNumber = phone;
}
public Contact()
{
}
public override string ToString()
{
return Name + " " + PhoneNumber;
}
}
现在我如何从桌面接收联系人2?
答案 0 :(得分:1)
您可以尝试这样的事情:
var contact = db.Table<Contact>()
.FirstOrDefault(c=>c.Name == "ddd");
答案 1 :(得分:0)
在数据库中,实体应具有唯一标识符并将其设置为主键。在您的情况下,最好为每个联系人添加一个ID(因为有些人也有相同的名称)。为此,您可以将课程修改为:
Contact.cs
public class Contact
{
[PrimaryKey, AutoIncrement] //use this so SQLite know this ContactId is the primary key of Contact entity
public int ContactId { get; set; }
public string Name { get; set; }
public string PhoneNumber { get; set; }
...
}
按主键检索联系人(ContactId):
var contact = db.Table<Contact>().Where(x => x.ContactId == 1) //replace 1 with ID of contact you'd need to retrieve
当然,您不需要使用int
作为主键的数据类型,您可以使用string
或符合您需求的其他人。
按名称检索联系人:
var contact = db.Table<Contact>().Where(x => x.Name == "ToBeSearchedName") //replace "ToBeSearchedName" with string of the contact you'd need to retrieve
希望这有帮助