C# 如何在WindowsPhone8.1中从Sqlite中的两个表中检索数据

C# 如何在WindowsPhone8.1中从Sqlite中的两个表中检索数据,c#,sqlite,visual-studio-2013,windows-phone-8.1,C#,Sqlite,Visual Studio 2013,Windows Phone 8.1,我创建了两个注册表 1.用户注册 2.公司注册(在一个数据库中) 我创建了一个登录页面。如何从表中检索特定用户 class UserReg { [AutoIncrement, PrimaryKey] public int UserID { get; set; } public string Name { get; set; } public string UserName { get; set; } public string UserPassword {

我创建了两个注册表 1.用户注册 2.公司注册(在一个数据库中)

我创建了一个登录页面。如何从表中检索特定用户

class UserReg
{
    [AutoIncrement, PrimaryKey]
    public int UserID { get; set; }
    public string Name { get; set; }
    public string UserName { get; set; }
    public string UserPassword { get; set; }
    public string Gender { get; set; }
    public string State { get; set; }
}
以上代码用于用户注册表

class FuelReg
{
    [AutoIncrement,PrimaryKey]
    public int FuelID { get; set; }
    public string FuelName { get; set; }
    public string FuelPassword { get; set; }
    public string CompanyName { get; set; }
    public string CompanyAddress { get; set; }
}
以上代码用于公司注册

现在,用户和公司应该使用相同的登录页面登录。如何实现这一点

我尝试了一些代码,但无法比较特定用户。我的主要问题是,如果用户和公司提供类似的用户和密码,那将是失败的。那么如何改变它。(项目中未给出验证)

private async void按钮\u单击\u 1(对象发送方,RoutedEventArgs e)
{
var dbpath=ApplicationData.Current.LocalFolder.Path+“/Map.db”;
var con=新的SQLiteAsyncConnection(dbpath);
尝试
{
UserReg t=new UserReg();
string query=string.Format(“从UserReg中选择用户名、UserPassword、性别、状态、名称,其中UserName='{0}'和UserPassword='{1}',text_user.text,text_pass.Password);
List mylist=wait con.QueryAsync(查询);
如果(mylist.Count==1)
{
t=mylist[0];
}
如果(t.UserName==text\u user.text&&t.UserPassword==text\u pass.Password&&t.Gender!=null&&t.Name!=null&&t.State!=null)
{
此.Frame.Navigate(typeof(MainPage));
}
其他的
{
FuelReg f=新的FuelReg();
string query1=string.Format(“从FuelReg中选择FuelName、FuelPassword、CompanyName、CompanyAddress,其中FuelName='{0}'和FuelPassword='{1}',text_user.text,text_pass.Password);
List mylist1=wait con.QueryAsync(query1);
如果(mylist1.Count==1)
{
f=mylist1[0];
}
如果(f.FuelName==text\u user.text&&f.FuelPassword==text\u Password&&f.CompanyName!=null&&f.CompanyAddress!=null)
{
this.Frame.Navigate(typeof(NewPage));
}
}
}
捕获(例外情况除外)
{
var msd=newmessagedialog(“+ex).ShowAsync();
}
}
那么,当用户从两个表中输入SignIn页面时,如何获取准确的数据呢

private async void Button_Click_1(object sender, RoutedEventArgs e)
    {

        var dbpath = ApplicationData.Current.LocalFolder.Path + "/Map.db";
        var con = new SQLiteAsyncConnection(dbpath);
        try
        {
            UserReg t = new UserReg();
            string query = string.Format("select UserName,UserPassword,Gender,State,Name from UserReg where UserName='{0}' and UserPassword='{1}'", text_user.Text, text_pass.Password);

            List<UserReg> mylist = await con.QueryAsync<UserReg>(query);

            if (mylist.Count == 1)
            {
                t = mylist[0];
            }

            if (t.UserName == text_user.Text && t.UserPassword == text_pass.Password && t.Gender!=null && t.Name!=null && t.State!=null)
            {

                this.Frame.Navigate(typeof(MainPage));
            }
            else 
            {
                FuelReg f = new FuelReg();
                string query1 = string.Format("select FuelName,FuelPassword,CompanyName,CompanyAddress from FuelReg where FuelName='{0}' and FuelPassword='{1}'", text_user.Text, text_pass.Password);

                List<FuelReg> mylist1 = await con.QueryAsync<FuelReg>(query1);
                if (mylist1.Count == 1)
                {
                    f = mylist1[0];
                }

                if (f.FuelName == text_user.Text && f.FuelPassword == text_pass.Password && f.CompanyName!=null && f.CompanyAddress!=null)
                {

                    this.Frame.Navigate(typeof(NewPage));
                }
            }
        }
        catch(Exception ex)
        {
            var msd = new MessageDialog("" + ex).ShowAsync();
        }

    }