2016-03-15 77 views
-1

請您告訴我如何使用此方法獲取單個數據對象。 由於返回類型,對我來說很困難。我試圖從我的MongoDB集合中獲取單個數據,然後使用不同形式的數據來顯示誰處於活動狀態。我的錯誤總是在返回類型的定義。如何從對象列表中獲取單個對象

這是我的代碼:

public var PrijavljenKorisnik(ModelPrijavaKorisnika prvKor) 
    { 
     MongoCollection<ModelKorisici> kljenti = GetTasksCollection(); 
     List<ModelKorisici> DohvaceniKorisnik = new List<ModelKorisici>(); 
     var upit = from lambda in kljenti.AsQueryable<ModelKorisici >() 
        where lambda.kor_ime == prvKor.PrijavaKor && lambda.uloga == "korisnik" 
        select lambda; 


     foreach (var dohvaceni in upit) 
     { 
      DohvaceniKorisnik.Add(dohvaceni); 
      if (DohvaceniKorisnik.Count() >= 1 && dohvaceni.uloga == "korisnik") 
      { 
       MessageBox.Show("Ovaj korinik je prijavljen kao korisnik"); 
       frmKorisnik fmk = new frmKorisnik(); 
       fmk.Show(); 
       frmPrijavaForma frmPriv = new frmPrijavaForma(); 
       frmPriv.Close(); 
       return dohvaceni; 
      } 
      else 
      { 
       DialogResult d = MessageBox.Show("Potrebno se je predhodno registrirati u aplikaciju KnjigoLjubac"); 
       if (d == DialogResult.Yes) 
       { 
        frmRegistracijaForma frmReg = new frmRegistracijaForma(); 
        frmReg.Show(); 
        return null; 
       } 
      } 
     } 
+0

'公共var'應該可能是'public ModelKorisici' ...? –

+0

爲什麼不能將返回類型更改爲可空類型的「dohvaceni」? – ashy

+0

我試着用ModelKorisici,但方法 –

回答

1

我並不完全相信你的意圖是什麼,但我會在它採取刺傷。你認爲你正在尋找一個單一的價值,所以我想這可能會爲你工作:

var dohvaceni = (from lambda in kljenti.AsQueryable<ModelKorisici >() 
       where lambda.kor_ime == prvKor.PrijavaKor && lambda.uloga == "korisnik" 
       select lambda) 
      .FirstOrDefault(); 

if (dohvaceni != null) 
{ 
    MessageBox.Show("Ovaj korinik je prijavljen kao korisnik"); 
    // the rest of the code for a match... 
} 
else 
{ 
    DialogResult d = MessageBox.Show("Potrebno se je predhodno registrirati u aplikaciju KnjigoLjubac"); 
    // the rest of the code for no matches... 
} 

我希望這可以幫助。

+0

我的意圖是從mongodb獲取數據並返回它,以便我可以在某些情況下使用數據另一種形式,這是一個登錄表單的代碼,我需要獲得註冊用戶的用戶名,所以,我試圖返回一個完整的對象,然後在另一個表單上使用它。 –

+0

我通過Google翻譯運行了一些變量名我發現你正在使用列名uloga(Role)來確定它們是否在「korisnik」(用戶)角色中,以及是否與kor_ime(用戶名)匹配。 ,我會建議在你的表單上創建一個構造函數,該構造函數將獲取用戶類的實例,然後使用該構造函數創建窗體(例如:MyForm m yForm = new MyForm(userInstance))。理想情況下,您會考慮實現自定義主體和IIdentity,以便使用內置的.NET安全性。 –

+0

frmRegistracijaForma formReg = new frmRegistracijaForma(); ModelPrijavaKorisnika prvKor = new ModelPrijavaKorisnika(); KorisniciBazaPodataka bpk = new KorisniciBazaPodataka(); label1.Text = bpk.PrijavljenKorisnik(prvKor).ToString();我試過這個......但現在我有一個空引用異常 –