gpt4 book ai didi

sqlite - Flash Builder 4.5,sqlite数据库查询问题

转载 作者:行者123 更新时间:2023-12-03 18:17:17 26 4
gpt4 key购买 nike

我正在为iOS应用程序使用flex 4.5。我正在尝试登录屏幕。在这里,我附上了我的代码:

登录按钮的点击处理程序:

protected function btnlogin_clickHandler(event:MouseEvent):void
{
user();
}


哪个调用此函数:

private function user():void
{
sqlConnection = new SQLConnection();
sqlConnection.open(File.applicationStorageDirectory.resolvePath("SchoolSeries.db"));
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "select User_Name from USER_NEW where User_Password = :password"
stmt.parameters[":password"] = password.text ;
stmt.execute();
var result11:SQLResult = stmt.getResult();
DataModel.getInstance().connection = sqlConnection;
//statuslable1.text = (String(result11.data[0].User_Conform_Password));
if ((String(result11.data[0].User_Name)) == username.text)
{
//VerifyLogin();
navigator.pushView(SummaryView,{unm:username.text});
}
else
{
statuslabelpass.visible = false;
statuslabel1.visible = false;
statuslabel.visible =true;
statuslabel.text = "Username & Password do not match";
}
}


我的问题是我没有按照自己的方式验证字段。如果我输入正确的密码但用户名错误,那么只有我能收到诸如“用户名和密码不匹配”的信息。但是,如果输入正确的用户名和错误的密码,则不会收到任何消息。

如果我编写了另一个用于验证密码的函数,然后通过单击按钮调用它,那么该函数甚至没有被调用。

private function passwrd():void
{
sqlConnection = new SQLConnection();
sqlConnection.open(File.applicationStorageDirectory.resolvePath("SchoolSeries.db"));
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = "select User_Password from USER_NEW where User_Name = :username"
stmt.parameters[":username"] = username.text ;
stmt.execute();
var result11:SQLResult = stmt.getResult();
DataModel.getInstance().connection = sqlConnection;
//statuslable1.text = (String(result11.data[0].User_Conform_Password));
if ((String(result11.data[0].User_Password)) == password.text)
{
navigator.pushView(SummaryView,{unm:username.text});
}
else
{
statuslabel.visible = false;
statuslabel1.visible = false;
statuslabelpass.visible =true;
statuslabelpass.text = "Username & Password do not match";
}
}


我该如何检查sqlite数据库的两个字段?

最佳答案

将两个参数都传递给您的查询,然后检查是否返回0或1条记录。

stmt.text = "select User_Password from USER_NEW where User_Name = :username and User_Password = :password" 
stmt.parameters[":username"] = username.text ;
stmt.parameters[":password"] = password.text ;

if (result11.data.length > 0)
{
//valid credentials
}
else
{
//Username & Password do not match
}


第二次查看您的user()函数后,我看到了一个主要错误。如果您有2个用户选择了相同的密码,则其中一个用户将永远无法登录。该查询将返回2条记录,但是您只针对位置[0]上的记录检查用户名,因此返回的用户排名[1]的人永远不会验证。您确实应该在同一个查询中传递两个参数。

关于sqlite - Flash Builder 4.5,sqlite数据库查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15756155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com