我的問題在于下面的這段代碼。對于 null 或空格問題,它按預期運行,但是在將我的員工登錄詳細資訊移植到 SQLite db 后,我現在正在努力正確測驗輸入是否與所有其他已知成員通行證 [密碼] 不匹配。這對于代碼表中每個作業人員的密碼變數來說要簡單得多,其中有名稱等,但是 rudiemtary 和我已經撰寫了一種將新員工添加到該資料庫的方法,如果知道如何正確獲得資格會很好它們不存在/與在 Entry 物件 entPassword.Text 中找到的輸入匹配,并存盤在“后面的代碼”中的變數 pass 中。
任何方向都會很棒,因為我覺得我錯過了或以前錯過了一些明顯的解決方案。下面是代碼片段,其中代碼只是有效地通過了實施的foreach檢查,因此很難遵循斷點,因為它只是等待更多輸入[如果是正確的密碼,它絕對可以登錄]。也許整個方法是錯誤的,我不知道:/這也是它的youtube 螢屏錄像,所以如果你想要更清楚,你可以看到無法運行的問題 - 編輯:如果你觀看它,請靜音視頻,它得到了糟糕的通知鈴聲:)
下面的代碼片段:
private async void BtnLogin_Clicked(object sender, EventArgs e)
{
string pass = entPassword.Text;
if (string.IsNullOrWhiteSpace(pass))
{
InputError($"Passcode: ?{pass} ? Shows nothing was entered: Entry DENIED!");
}
else
{
List<Member> members = await App.Db.GetMembersAsync();
IEnumerable<string> memberPasses = from m in members where m.Pass == pass select m.Pass;
//the trouble ahead...
foreach (string p in memberPasses)
{
if (pass != p)
{
InputError($"Passcode: {pass} was NOT a recognized code");
}
else
{
IEnumerable<Member> member = from m in members
where m.Pass == p
select m;
Member mem = (Member)member.FirstOrDefault();
mem.DateStamp = DateTime.Now.ToShortDateString();
mem.TimeStamp = DateTime.Now.ToShortTimeString();
memberDetails = new string($" {mem.Usr} @ {mem.TimeStamp} on {mem.DateStamp}");
await App.Db.UpdateMemberAsync(mem);
NextPage();
}
}
}
}
uj5u.com熱心網友回復:
搜索成員串列以找出是否有任何匹配給定屬性。
在這里,“pass”與“member.Pass”相比:
var matchingMembers = (from m in members where m.Pass == pass).ToList();
if (matchingMembers.Count > 0 )
{
foreach (var member in matchingMembers)
{
//...
}
} else
{
//..tell user no match for "pass"..
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484607.html
