Sqlite C# 代码在 Unity 编辑器中工作,但在编译后停止工作

本文关键字:编译 工作 停止工作 代码 Unity 编辑器 Sqlite | 更新日期: 2023-09-27 18:37:00

我遇到了一个问题,我的游戏在Unity 3d IDE中运行良好,但是当我编译它的那一刻,它会在某个时刻停止。事实上,当我的 sqlite 代码被执行时。但不仅仅是在初始化时!

所以这段代码运行得很好:

/// <summary>
/// Basic initialization of SQLite This will be activated by the manager script 
/// </summary>
public static void SQLiteInit ()
{
    string SQL_DB_LOCATION = @"URI=file:C:'temp'inlusio_data'InlusioDB.sqlite";
    mConnection = new SqliteConnection(SQL_DB_LOCATION);
    mCommand = mConnection.CreateCommand();
    mConnection.Open();
    ExecuteQuerry("PRAGMA page_size = " + "4096" + ";");
    ExecuteQuerry("PRAGMA synchronous = " + "1" + ";");
    mConnection.Close();
}

ExecudeQuerry代码似乎工作正常,因为我代码的上述部分工作正常。这里是执行代码:

    public static void ExecuteQuerry (string sqlcomand)
{
    Debug.Log(sqlcomand);
    mCommand.CommandText = sqlcomand;
    mCommand.ExecuteNonQuery();
}

有问题的部分,游戏卡在了那里:

public static void InitialSavingsToDB (string chiffre, string EasyDelay, string HardDealy, string session)
{
/// Subject code 
ExecuteQuerry("INSERT INTO 'Subject'('Subject_Number','EasyDifficultyLevel','HardDifficultyLevel') VALUES ('" + chiffre + "','" + EasyDelay + "','" + HardDealy + "');");
}

我也试过这样:

public static void InitialSavingsToDB (string chiffre, string EasyDelay, string HardDealy, string session)
{
    /// Subject code 
    mConnection.Open();
    mCommand.CommandText = "INSERT INTO 'Subject'('Subject_Number','EasyDifficultyLevel','HardDifficultyLevel') VALUES ('" + chiffre + "','" + EasyDelay + "','" + HardDealy + "');";
    mCommand.ExecuteNonQuery();

    mConnection.Close();      

}

也许值得一提的是,我从我的 ManagerScript 调用 InitialSavings ToDB 函数,该函数声明为

public class ManagerScript : MonoBehaviour {
...
...
...
private void Start ()
    {
        ...
        testofsql.SQLiteInit(); // initialisation of the Data Base
        ...
...
...
    }
...
...
}

所以我的代码工作正常,当我从Unity 3d编辑器测试游戏时,数据被完美保存。当我编译它的那一刻,它只是不会在游戏中继续。没有错误,什么都没有。我甚至可以跑来跑去。但游戏卡住了。

老实说,我不知道如何解决这个问题。自 2 周以来一直在谷歌上搜索以使 sqlite 在 Unity 中工作,试图避免错误,调试所有内容,直到我找到问题的根源并且毫无头绪......我希望有人能提供帮助。

谢谢!

干杯切赫

Sqlite C# 代码在 Unity 编辑器中工作,但在编译后停止工作

你的目标平台是什么?安卓, IOS, ...?

请注意,对于不同的平台,unity3d 使用不同的 sqlite 程序集。

尝试检查以下项目https://github.com/codecoding/SQLite4Unity3d 插件文件夹中的数据并将其与项目中使用的数据进行比较。

我建议尝试使用为Unity设计的库。就个人而言,这就是我一直在处理多平台SQLite处理的工作。我强烈建议这个库/包装器

SQLite使Unity3d http://codecoding.github.io/SQLite4Unity3d 变得容易

我目前正在改进这一点,使其更易于使用。然而,这可能是一个很好的起点!

祝你好运!