繁体   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