为什么SQLite在Unity 5.3中抛出InvalidOperationException?

时间:2016-05-12 10:14:22

标签: c# sqlite exception unity3d

我在Unity 5.3中尝试使用SQLite时遇到了一些问题。我一直在关注Unity Answers(http://answers.unity3d.com/questions/743400/database-sqlite-setup-for-unity.html)中提供的SQLite设置,我尝试使用以下代码打开sqlite数据库:

 void Start()
 {
         string conn = "URI=file:" + Application.dataPath 
             + "/trajectoriesDB"; //Path to database.

         IDbConnection dbconn;
         dbconn = (IDbConnection) new SqliteConnection(conn);
         dbconn.Open();
         Debug.Log("Database open");

         dbconn.Close();
         dbconn = null;
 }

问题在于,当我尝试打开sqlite连接时,Unity会抛出以下异常:

InvalidOperationException:DataReader处于活动状态时无法设置CommandText

我在一个非常简单的场景中进行了测试,只有这个脚本正在运行,我还仔细检查过我在Assets / Plugins中需要的所有.dll以及Assets /中的数据库文件。

我无法找到此问题的根源,因为我的代码中没有任何DataReader。有没有人以前遇到过同样的问题?

提前谢谢!

更新

这是堆栈跟踪:

InvalidOperationException: Cannot set CommandText while a DataReader is active 

Mono.Data.Sqlite.SqliteCommand.set_CommandText (System.String value) 
    (wrapper remoting-invoke-with-check) 

Mono.Data.Sqlite.SqliteCommand:set_CommandText (string) 

Mono.Data.Sqlite.SqliteConnection.Open () SQLiteTest.Start () (at Assets/Scripts/SQLiteTest.cs:21) 

0 个答案:

没有答案