Xamarin中如何根据用户名查询用户信息
How to query user information based on its username in Xamarin
我正在尝试获取用户性别并将其显示在我的登录页面上,以便我可以在登录后将其传递到下一页。
我正在使用文本更改事件来查看用户名是否存在。这是我的代码:
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";
}
}
当我 运行 我的应用程序时,它不会给我一个错误,但如果用户名存在于我的数据库中,这是输出:
那里的输出应该是"Male"或"Female"。
gendercheck
是一个 List<RegUserTable>
var gendercheck = db.Query<RegUserTable>("SELECT Gender FROM RegUserTable WHERE Username = ?", EntryLoginUsername.Text);
试试这个
GenderIdentifier.Text = gendercheck.FirstOrDefault().Gender.ToString();
根据您的代码片段,我猜您的 RegUserTable
中有性别字段。因此,不需要查询两次来获取用户并再次查询性别。
注意:如果用户在您的第一个查询中table可用,您将获得该用户的所有信息。因此,您可以直接从该对象本身访问用户的性别。
检查下面的代码。这对你有用
var checkquery = db.Table<RegUserTable>().Where(a => a.Username == EntryLoginUsername.Text).FirstOrDefault();
if(checkquery !=null)
{
var userGender= checkquery.Gender;
GenderIdentifier.Text = userGender;
}
我正在尝试获取用户性别并将其显示在我的登录页面上,以便我可以在登录后将其传递到下一页。
我正在使用文本更改事件来查看用户名是否存在。这是我的代码:
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";
}
}
当我 运行 我的应用程序时,它不会给我一个错误,但如果用户名存在于我的数据库中,这是输出:
那里的输出应该是"Male"或"Female"。
gendercheck
是一个 List<RegUserTable>
var gendercheck = db.Query<RegUserTable>("SELECT Gender FROM RegUserTable WHERE Username = ?", EntryLoginUsername.Text);
试试这个
GenderIdentifier.Text = gendercheck.FirstOrDefault().Gender.ToString();
根据您的代码片段,我猜您的 RegUserTable
中有性别字段。因此,不需要查询两次来获取用户并再次查询性别。
注意:如果用户在您的第一个查询中table可用,您将获得该用户的所有信息。因此,您可以直接从该对象本身访问用户的性别。
检查下面的代码。这对你有用
var checkquery = db.Table<RegUserTable>().Where(a => a.Username == EntryLoginUsername.Text).FirstOrDefault();
if(checkquery !=null)
{
var userGender= checkquery.Gender;
GenderIdentifier.Text = userGender;
}