C# 统一SQLite本地数据库
我正在Unity制作一个小游戏,我需要一个数据库。我尝试使用C# 统一SQLite本地数据库,c#,android,database,sqlite,unity3d,C#,Android,Database,Sqlite,Unity3d,我正在Unity制作一个小游戏,我需要一个数据库。我尝试使用SQLite数据库,因为这似乎是网络推荐的 现在我在通过c#连接到本地数据库时遇到了问题 我在SQLite.dll中实现了数据。 我试图从使用SQLite developer创建的数据库中获取1个名称 下面是我的DataConnection类,我用它连接数据库 using UnityEngine; using System.Collections; using System.Data; using Mono.Data.SqliteCli
SQLite
数据库,因为这似乎是网络推荐的
现在我在通过c#连接到本地数据库时遇到了问题
我在SQLite.dll中实现了数据。
我试图从使用SQLite developer创建的数据库中获取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位 将此文件放在你的应用程序文件夹中 请在第38行的空位上填上一掷 因为有一个异常隐藏在那里,这是空引用的真正原因
你也可以发布你的连接字符串,这样我就可以更好地回答这个问题。我现在可以使用了。问题是我发现其中一个SQLite.dll仍然是32位的。我重复了一遍教程,在谷歌上搜索了64位的.dll文件,现在它开始工作了。谢谢,解决了其中一个错误,现在我仍然有NullReferenceException错误。知道如何解决这个问题吗?连接字符串:@“数据源=C:\ProgramFiles(x86)\SharpPlus\SqliteDev\GameDatabase.db;版本=3;”;你是对的,异常给了我“不正确的连接字符串”。我的绳子一定有毛病。顺便说一句,它在我的dataconnection.cs中。我将数据库移动到\documents\并相应地连接,但它似乎仍然不起作用。我检查了它,它仍然是一样的。我一直收到NullReference异常错误。