簡體   English   中英

如何在Xamarin中根據用戶名查詢用戶信息

[英]How to query user information based on its username in Xamarin

我正在嘗試獲取用戶性別並將其顯示在我的登錄頁面上,以便我可以在登錄后將其傳遞到下一個頁面。

我正在使用 textchange 事件來查看用戶名是否存在。 這是我的代碼:


        private void EntryLoginUsername_TextChanged(object sender, TextChangedEventArgs e)
        {
            var dbpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Userdatabase.db");
            var db = new SQLiteConnection(dbpath);
            RegUserTable _userstable = new RegUserTable();

            if (!string.IsNullOrWhiteSpace(EntryLoginUsername.Text))
            {
                if (IsTableExists("RegUserTable") == true)
                {
                    var checkquery = db.Table<RegUserTable>().Where(a => a.Username == EntryLoginUsername.Text).FirstOrDefault();

                    if (checkquery != null)
                    {
                        // ani i insert ang tts function  
                        var gendercheck = db.Query<RegUserTable>("SELECT Gender FROM RegUserTable WHERE Username = ?", EntryLoginUsername.Text);

                        if (gendercheck != null)
                        {
                            GenderIdentifier.Text = gendercheck.ToString(); ;
                        }

                        else
                        {
                            GenderIdentifier.Text = "nooooo";
                        }
                    }

                    else
                    {
                        GenderIdentifier.Text = "nooo";
                    }
                }
            }

            else
            {
                GenderIdentifier.Text = "no";
            }
        }

當我運行我的應用程序時,它不會給我一個錯誤,但如果用戶名存在於我的數據庫中,這是輸出:

在此處輸入圖片說明

那里的輸出應該是“男”或“女”。

根據您的代碼片段,我猜您的RegUserTable有 Gender 字段。 因此,不需要兩次查詢以獲取用戶並再次查詢性別。

注意:如果用戶在第一次查詢的表中可用,您將獲得該用戶的所有信息。 因此,您可以直接從該對象本身訪問用戶的性別。

檢查下面的代碼。 這對你有用

 var checkquery = db.Table<RegUserTable>().Where(a => a.Username == EntryLoginUsername.Text).FirstOrDefault();
 if(checkquery !=null)
 {
   var userGender= checkquery.Gender;
   GenderIdentifier.Text = userGender;
 }

gendercheck是一個List<RegUserTable>

var gendercheck = db.Query<RegUserTable>("SELECT Gender FROM RegUserTable WHERE Username = ?", EntryLoginUsername.Text);

嘗試這個

GenderIdentifier.Text = gendercheck.FirstOrDefault().Gender.ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM