簡體   English   中英

Unity SQLite本地數據庫

[英]Unity SQLite local database

我正在Unity做一個小游戲,我需要一個數據庫。 我嘗試使用SQLite數據庫,因為這似乎是Web推薦的。

現在,我很難通過c#連接到本地數據庫。

我在SQLite .dll中實現了數據。 我試圖從使用SQLite開發人員創建的數據庫中獲得1個名稱。

下面是我的DataConnection類,該類用於連接數據庫。

using UnityEngine;
using System.Collections;
using System.Data;
using Mono.Data.SqliteClient;

public class Dataconnection : MonoBehaviour {

private string _constr = @"Data Source=C:\Program Files (x86)\SharpPlus\SqliteDev\GameDatabase.db;Version=3;";
private IDbConnection _dbc;
private IDbCommand _dbcm;
private IDataReader _dbr;


public Dataconnection()
{

}

public Dataconnection(string constring)
{
        _constr = constring;
}

public string ExcecuteQuery(string SQL)
{
    string output = "";

    try
    {
        _dbc = new SqliteConnection(_constr);
        _dbc.Open();
        _dbcm = _dbc.CreateCommand();
        _dbcm.CommandText = SQL;
        _dbr = _dbcm.ExecuteReader();
    }
    catch
    {

    }

    while (_dbr.Read())
    {
        output = _dbr.GetString(0);
    }

    _dbc.Close();

    return output;
}   
}

然后,從另一個類調用以下方法:

datacon.ExcecuteQuery("SELECT name FROM employee WHERE empid = 1;");

運行代碼時出現以下錯誤:

在此處輸入圖片說明

所以我猜想它與32/64位不匹配有關,或者創建這樣的腳本實例是否有問題?:

private Dataconnection datacon;

void Start()
{
    datacon = new Dataconnection();
}

很高興收到任何幫助。 我熟悉使用數據庫,這是SQLite的新手。

它說它無法加載本地sqlite.dll,因為您有64位版本,並且需要32位

將此放置在您的應用程序文件夾中https://www.sqlite.org/2015/sqlite-dll-win32-x86-3081001.zip

請在第38行的空漁獲物上扔一擲;

因為那里隱藏着一個例外,這是空引用的真正原因。

您也可以發布您的連接字符串,以便我更好地回答。

我現在開始工作了。 問題是我的SQLite .dll仍然是32位。 我再次完成了教程,並在google中搜索了64位.dll文件,現在它可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM