1067:将类型Array的值隐式强制转换为不相关的类型mx.collections:IList

时间:2014-03-07 08:04:32

标签: flex flash-builder

我真的非常非常灵活并且正在学习现在我在尝试学习将我的应用程序前端连接到数据库时遇到了这个错误。 错误:1067:将类型Array的值隐式强制转换为不相关的类型mx.collections:IList。

private function onDatabaseOpen(event:SQLEvent):void
{
    // init sqlStatement object
    sqlStmt = new SQLStatement();
    sqlStmt.sqlConnection = conn;
    var sql:String =         "CREATE TABLE IF NOT EXISTS user (" +
    "    id INTEGER PRIMARY KEY AUTOINCREMENT, " +
    "    password TEXT" +
    ")";
    sqlStmt.text = sql;
    sqlStmt.addEventListener(SQLEvent.RESULT, statResult);
    sqlStmt.addEventListener(SQLErrorEvent.ERROR, createError);
    sqlStmt.execute();
}
private function statResult(event:SQLEvent):void
{
    // refresh data
    var sqlresult:SQLResult = sqlStmt.getResult();

   if(sqlresult.data == null)
   {
    getResult();
    return;
   }

   datafiled.dataProvider = sqlresult.data;
}

1 个答案:

答案 0 :(得分:3)

我的建议是将代码的最后一行更改为:

datafiled.dataProvider = new ArrayCollection(sqlresult.data);

我不确定你是什么“数据字段”,但是我建议它的属性“dataProvider”实现mx.collections:IList接口,所以你需要分配一个也实现mx.collections的对象:IList接口。 sqlresult.data是Array,Array对象不实现此接口。因此,您应该从Array中创建ArrayCollection。 ArrayCollection实现了所需的接口。