微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Unity SQLite本地数据库

我在Unity制作一个小游戏,我需要一个数据库.我尝试使用sqlite数据库,因为这似乎是网络推荐的.

现在我遇到了通过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;");

运行代码时出现以下错误

enter image description here

所以我猜它与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行填空;

因为隐藏了一个异常,这是空引用的真正原因.

你也可以发布你的连接字符串,这样我就能更好地回答这个问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐