【问题标题】:retrieving user name and password from database从数据库中检索用户名和密码
【发布时间】:2014-03-18 08:07:43
【问题描述】:

我正在制作一个需要在登录页面上输入用户名和密码的应用程序。 如何从黑莓 10 级联的数据库中检索用户名和密码?请提及代码....

【问题讨论】:

  • 你想要这个数据库在哪里?你永远不应该保存实际密码,你只检查它是否正确,而不是检索它。
  • 对不起....我使用的数据库是sqlite。我实际上想进行身份验证,如果用户输入的凭据是正确的,那么他将被重定向到主 qml 页面。
  • 请提供可能的正确代码
  • 你有没有尝试过?
  • 我需要从数据库中获取列表用户名和密码,并在文本框中与我的用户名和密码进行比较

标签: authentication passwords blackberry-10


【解决方案1】:

按结果集从数据库中获取所需的用户和密码。

String user=usertx.getText();
char[] password=pswdtx.getPassword();
String pswd=String.valueOf(password);   \\here is important to put a char password in string.`

我们通过以下方式调用要求用户及其密码:

Resultset rs= stmt.excuteQuery("SELECT * FROM USERS WHERE NAME='"+user+"' AND PASSWORD='"+pswd+"'");

此代码将仅获取所选用户的行及其行中的信息并将其设置在 (rs) 中。 rs.next()的代码:

while(rs.next()){
    rsuser=rs.getString("NAME");         //get user and set it in rsuser.
    rspswd=rs.getString("PASSWORD");}    //get password and set it in rspswd.
if ((user.equals(rsuser)) && (pswd.equals(rspswd))){  //the equevlant statment.
    JOptionPane.showMessageDialog(null, "Username and Password exist");}
else {
    JOptionPane.showMessageDialog(null, "Please Check Username and Password ");}
}

这里是全部代码:

private void submitActionPerformed(java.awt.event.ActionEvent evt) {                                       
    try {
        String user=usertx.getText();
        char[] password=pswdtx.getPassword();
        String pswd=String.valueOf(password);

        String rsuser=null;
        String rspswd=null;
        String Q="SELECT * FROM USERS WHERE NAME='"+user+"' AND PASSWORD='"+pswd+"'";
        rs=stmt.executeQuery(Q);

        while(rs.next()){
        rsuser=rs.getString("NAME");
        rspswd=rs.getString("PASSWORD");}
        if ((user.equals(rsuser)) && (pswd.equals(rspswd))){
        JOptionPane.showMessageDialog(null, "Username and Password exist");}
        else {
            JOptionPane.showMessageDialog(null, "Please Check Username and Password ");}
        } 
    catch (SQLException ex) {ex.printStackTrace();}
}

【讨论】:

    【解决方案2】:

    将以下行添加到您的 .pro 文件中 LIBS += -lbbdata

    那么就可以编写如下代码:

        QVariant searchResult;
        QVariantList searchList;
        QString userName, password;
    
        bb::data::SqlDataAccess sda(QDir::currentPath() + "/app/native/assets/sample.sqlite");
    
        searchResult = sda.execute("select * from usersTable where userId=5");
        searchList = searchResult.value<QVariantList>();
    
        userName = searchList.at(0).toMap()["name"];
        password = searchList.at(0).toMap()["password"];
    

    【讨论】:

    • S.Hamed ,例如考虑一个数据库,其中一个表有 5 列,其中包含一些相应的记录。另一方面,考虑一个有 5 个文本框/标签的 qml 页面。是否可以将这些文本框/标签与该数据库的 5 列的文本框/标签映射,以便在要求 sql 查询一次从多个列中检索数据时(例如:select from tablename where column1= "****" and column2="**" .... ..... and column5="****") 其中来自 column1 的结果数据被发送到第一个文本框, column2 将数据发送到第二个文本框...直到第 5 个文本框?
    • 如果可能的话,请提供代码......希望你已经理解我的问题......提前谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2015-01-09
    • 1970-01-01
    • 2012-08-29
    • 2018-02-13
    相关资源
    最近更新 更多