我在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;");
所以我猜它与32/64位不匹配有关,或者创建这样的脚本实例有什么问题?:
private Dataconnection datacon; void Start() { datacon = new Dataconnection(); }
解决方法
它说它无法加载本机sqlite.dll,因为你有64位版本,它需要32位
将其放在您的应用程序文件夹https://www.sqlite.org/2015/sqlite-dll-win32-x86-3081001.zip中
请在第38行填空;
因为隐藏了一个异常,这是空引用的真正原因.
你也可以发布你的连接字符串,这样我就能更好地回答这个问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。