简体   繁体   English

如何在Xamarin中根据用户名查询用户信息

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

I am trying to get the user gender and display it on my login page, so I can pass it to the next page after login.我正在尝试获取用户性别并将其显示在我的登录页面上,以便我可以在登录后将其传递到下一个页面。

I am using textchange event to see if the username exists or not.我正在使用 textchange 事件来查看用户名是否存在。 This is my code:这是我的代码:


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

When I run my app, it doesn't give me an error, but this is the output if the username exists in my database:当我运行我的应用程序时,它不会给我一个错误,但如果用户名存在于我的数据库中,这是输出:

在此处输入图片说明

The output there should be "Male" or "Female".那里的输出应该是“男”或“女”。

Based on your code snippet, I guess you have the Gender field in your RegUserTable .根据您的代码片段,我猜您的RegUserTable有 Gender 字段。 Hence it is not required to query twice to get the user and again for gender.因此,不需要两次查询以获取用户并再次查询性别。

Note: You will get all the information of the user if he is available in your table in the first query.注意:如果用户在第一次查询的表中可用,您将获得该用户的所有信息。 So you can directly access the gender of the user from that object itself.因此,您可以直接从该对象本身访问用户的性别。

Check below code.检查下面的代码。 This will work for you这对你有用

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

gendercheck is a List<RegUserTable> gendercheck是一个List<RegUserTable>

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

try this尝试这个

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM