2014-03-07 30 views
0

我真的对flex非常新,现在我在尝试学习将我的应用程序前端连接到数据库时遇到此错误。 错误:1067:将数组类型值的隐式强制转换为不相关的类型mx.collections:IList。1067:将数组类型的值隐式强制为无关类型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; 
} 

回答

3

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

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

我不知道什么是你“数据字段”,但我认为它的财产“数据提供程序”实现MX。集合:IList接口,因此您需要指定一个也实现mx.collections:IList接口的对象。 sqlresult.data是Array并且Array对象不会实现此接口。因此,您应该从阵列中创建ArrayCollection。 ArrayCollection实现所需的接口。

相关问题