I am working on a game using Unity 2019.3.1f1 Personal. The game I made includes a SQLite database and, inside the editor, works as intended with no issues. However, after building the game and running the executable the game does not connect to the database. I am sure it is due to the single error I still get inside the editor though I have no resolution for this issue. Attached is the error and my Plugins folder.
You have two problems here: error in Unity Editor and issue in build.
To solve the first:
- The following files must be inside the Plugins folder: Modo.Data.dll, Mono.Data.Sqlite.dll, sqlite3.def and sqlite3.dll. You can download here.
To solve the second:
When you build your project, Unity exports the database EMPTY, that is, without tables. Then do the following:
- Into your database manager script, add a function that create the tables you need in your database. Add the “IF NOT EXISTS” clause in every CREATE TABLE to prevent future Sql exceptions.
- Call the new function from the Start() function after find the database.
Example DatabaseManager.cs script:
string conn;
string sqlQuery;
IDbConnection dbconn;
IDbCommand dbcmd;
string DATABASE_NAME = "/mydatabase.s3db";
void Start()
{
string filepath = Application.dataPath + DATABASE_NAME;
conn = "URI=file:" + filepath;
dbconn = new SqliteConnection(conn);
CreateTable();
}
private void CreateTable()
{
using (dbconn = new SqliteConnection(conn))
{
dbconn.Open();
dbcmd = dbconn.CreateCommand();
sqlQuery = "CREATE TABLE IF NOT EXISTS [table_name] (" +
"[id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
"[name] VARCHAR(255) NOT NULL," +
"[age] INTEGER DEFAULT '18' NOT NULL)";
dbcmd.CommandText = sqlQuery;
dbcmd.ExecuteScalar();
dbconn.Close();
}
}
- Go to Player Settings / Other Settings and be sure .Net Standard 2.0 is selected in Api Compatibility Lebel field.
- Go to Build Settings and select x86_64 in Architecture field (Windows Platform).
- Do a new build and check if game run correctly.
- Let me know if this post helped you to solve your issues
I dont know much about SQLite database or anything but i saw a link from a unity forum about this problem that helped alot of people. Hope this link works for you too.
https://forum.unity.com/threads/cant-load-system-data-dll.523131/
I’m building my game and i have little knowledge about sqlite database you can use this link and study about it. Life saver