0

嗨,我正在使用 Windows Phone 8 应用程序。我想设置现有用户登录,我可以添加用户注册,但我不能做用户登录,我的代码如下。

public partial class LoginPage : PhoneApplicationPage
{
    public LoginPage()
    {
        InitializeComponent();

    }
    public static class dal
    {

        public static SQLiteAsyncConnection connection;
        public static bool isDatabaseExisting;

        public static async void ConnectToDB()
        {
            try
            {
                StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("Bestin.sqlite");
                isDatabaseExisting = true;
            }
            catch (Exception ex)
            {
                isDatabaseExisting = false;
            }

            if (!isDatabaseExisting)
            {
                try
                {
                    StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("Bestin.sqlite");
                    await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
                    isDatabaseExisting = true;
                }
                catch (Exception ex)
                {
                    isDatabaseExisting = false;
                }
            }

            if (isDatabaseExisting)
            {

                connection = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "Bestin.sqlite"), true);

            }
        }
    }

    private void Click_Login(object sender, RoutedEventArgs e)
    {
        dal.ConnectToDB();
        var query = dal.connection.QueryAsync<Task>("SELECT * FROM Task Where Email=" + "\'" + txtEmailaddress.Text + "\'" + "and Password=" + "\'" + txtPassword.Password + "\'").Result;

        if (query == null)
        {
            // invalid Login credentials
        }
        else
        {
            // do login
        }
    }

}

我正在使用您的代码。我收到错误系统找不到指定的文件。(来自 HRESULT 的异常:0x80070002)

4

3 回答 3

0

你可以试试这个..

        private void Click_Login(object sender, RoutedEventArgs e)
        {
            dbConn = new SQLiteConnection(DB_PATH);
            var query = dbconn.QueryAsync<Task>("SELECT * FROM Task Where Email=" + "\'" + txtEmailaddress.Text + "\'" + "and Password=" + "\'" + txtPassword.Password + "\'").Result;

           if(query == null)
           {
             // invalid Login credentials
           }    
           else
           {
             // do login
           }
        }
于 2013-06-24T06:40:08.460 回答
0

好的,这样做....

public static class dal
{
    public static SQLiteAsyncConnection connection;
    public static bool isDatabaseExisting;

    public static async void ConnectToDB()
    {
        try
        {
            StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("Bestin.sqlite");
            isDatabaseExisting = true;
        }
        catch (Exception ex)
        {
            isDatabaseExisting = false;
        }

        if (!isDatabaseExisting)
        {
            try
            {
                StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("Bestin.sqlite");
                await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
                isDatabaseExisting = true;
            }
            catch (Exception ex)
            {
                isDatabaseExisting = false;
            }
        }

        if (isDatabaseExisting)
        {

            connection = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "Bestin.sqlite"), true);

        }
    }
}

为您的数据库连接创建一个类似上述代码的类,并在您的应用程序启动时调用它,例如 dal.ConnectToDB();

然后在你的登录页面中这样做......

private void Click_Login(object sender, RoutedEventArgs e)
{

   var query = dal.connection.QueryAsync<Task>("SELECT * FROM Task Where Email=" + "\'" + txtEmailaddress.Text + "\'" + "and Password=" + "\'" + txtPassword.Password + "\'").Result;

   if(query == null)
   {
     // invalid Login credentials
   }    
   else
   {
     // do login
   }
}
于 2013-06-24T10:06:51.827 回答
0

嗨,我的问题得到了解决方案..,

      using (var dbConn = new SQLiteConnection(DB_PATH))
        {
            var existing = dbConn.Query<Userlist>("select * from Userlist Where Email=" + "\'" + txtEmailaddress.Text + "\'" + "and Password=" + "\'" + txtPassword.Text + "\'").FirstOrDefault();

            if (existing != null)
            {

                NavigationService.Navigate(new Uri("/Input.xaml?selectedItem=", UriKind.Relative));

            }
            else
            {
                MessageBox.Show("invalid login");
            }
        }
于 2013-07-03T13:11:17.013 回答