2017-03-11 16 views
-1

私は、ContactクラスでSQl Liteテーブルを作成し、そこにいくつかの項目を追加します。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; 
    } 
} 

今、私はテーブルからcontact2を受け取ることができますか?

+0

を助けました。 –

+0

完全なコード例を挙げてください。クラスとメソッドが必要です。 –

+0

私はその人たちをやった。 – Mehrdad

答えて

0

データベースでは、エンティティは、一意の識別子を有するべきであり、主キーとして設定します。あなたのケースでは、おそらくすべての連絡先のIDを追加するのが最善です(同じ名前の人もいるため)。主キー(ContactId)で連絡を取得するには

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; } 
    ... 
} 

:これを行うには、あなたはにあなたのクラスを修正することができる。もちろん、

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 

希望これはすべてのあなたのデータを取得することができ、カーソルを使用して

1

あなたはこのような何かを試みることができる:

var contact = db.Table<Contact>() 
       .FirstOrDefault(c=>c.Name == "ddd"); 
+0

reply.butに感謝しています。私は何IDですか、どのように使用できますか? – Mehrdad

+0

ようこそ。あなたの質問に 'Contact'クラスの定義も掲載してください。ありがとう – Christos

+0

確かに、私は質問に連絡先のクラスを追加しました – Mehrdad

関連する問題