我在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)