在我的AIR应用程序中,我试图将sqlite数据库中的名称作为ArrayCollection。这是我的代码。
private function visitorName():void {
var sqlText:String = "SELECT name FROM user";
visitorNames = new SQLStatement;
visitorNames.sqlConnection = dbConn;
visitorNames.addEventListener(SQLEvent.RESULT, visitornamesResult);
visitorNames.addEventListener(SQLErrorEvent.ERROR, errorHandler);
visitorNames.text = sqlText;
visitorNames.execute();
}
private function visitornamesResult(event:SQLEvent):Array {
var result:SQLResult = visitorNames.getResult();
var namesList:Array = new Array();
namesList = result.data;
datafield3.dataProvider = namesList;
return namesList;
}
如何通过调用visitorName()函数将结果传递给ArrayCollection? 是否有可能从嵌套函数中获取返回值?我知道visitorName函数应该更改为ArrayCollection类型,并且应该在其中声明一个ArrayCollection变量..但不太确定如何继续..任何帮助表示赞赏..
答案 0 :(得分:0)
首先,请注意visitornamesResult
是一个事件处理程序,因此您将无法获得该函数的返回值。
当你得到它时(在UI中?或在模型中?),你会想要将结果实际放到某处吗?
让我们保持简单,只需将其分配给您的datafield3.dataProvider
:
private function visitorName(): { ... /* same as before */ }
private function visitornamesResult(event:SQLEvent):void {
var result:SQLResult = visitorNames.getResult();
// this is how you create an ArrayCollection with a provided Array
var visitors: ArrayCollection = new ArrayCollection( result.data );
datafield3.dataProvider = visitors;
}