Unity SQLite连接无法打开数据库文件

时间:2019-01-21 18:41:53

标签: android database sqlite unity3d

我是Unity和SQLite的新手。 我正在做一个Android应用,应该可以离线使用。这是我第一次使用Unity和SQLite。

我只是尝试连接到我的SQLite数据库文件TrilhoVerde.db。我使用SQLiteAdministrator创建了它。我创建了一个数据库,但为空。我将在C#文件中创建必要的表(由于外键)。这是我的代码:

private IDbConnection connection;
private IDbCommand command;
private IDataReader reader;

// Start is called before the first frame update
void Start()
{
    Connection();
}

private void Connection()
{
    string dbFile = "URI=File:"+ Application.dataPath +"/Plugins/TrilhoVerde.db:";
    connection = (IDbConnection) new SqliteConnection(dbFile);
    connection.Open();

    command = connection.CreateCommand();

    string createTable = "select * from Avatar;";
    command.CommandText = createTable;
    reader = command.ExecuteReader();
}

但是当我在Unity中运行它时,出现了此错误:

  

SqliteSyntaxException:无法打开数据库文件   Mono.Data.SqliteClient.SqliteCommand.GetNextStatement(System.IntPtr pzStart,System.IntPtr&pzTail,System.IntPtr&pStmt)(位于<9f65d62b5efa4334801a8fece4acee8a>:0)   Mono.Data.SqliteClient.SqliteCommand.ExecuteReader(System.Data.CommandBehavior行为,System.Boolean want_results,System.Int32&rows_affected)(位于<9f65d62b5efa4334801a8fece4acee8a>:0)   Mono.Data.SqliteClient.SqliteCommand.ExecuteNonQuery()(位于<9f65d62b5efa4334801a8fece4acee8a>:0)   carrega.Connection()(位于Assets / scipts / carrega.cs:30)   carrega.Start()(位于Assets / scipts / carrega.cs:17)

我正在使用这些视频中的教程:

https://www.youtube.com/watch?v=QtDtBvAyzOQ

https://www.youtube.com/watch?v=CtDSQkLdlZg

我认为我已完成所有步骤。我知道有很多与此问题有关的问题,但到目前为止,如果它们解决了我的问题,则没有任何问题。如果缺少某些东西来了解我的所作所为和错误之处,请告诉我。

有人知道我在做什么错吗? 很抱歉,这真的很简单,但是,就像我说的那样,我是Unity和SQLite的新手。

更新

我使用另一个程序创建了一个新的数据库文件,并注释了代码的命令部分。现在它没有引发任何错误。撤消该评论,再次出错。

问题出在以下特定行:

reader = command.ExecuteReader();

我还将表添加到数据库文件中,而不是C#中。 Stil不知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

我真的很抱歉失去那些在此上浪费时间的人,我也感到很尴尬。数据库文件名称错误。我应该去TrilhoVerde.db,但是在脚本中有TrilhoVerde.bd:。