Unity3d 5.3.5使用sqlite3
发布时间:2020-12-12 19:21:15 所属栏目:百科 来源:网络整理
导读:http://blog.csdn.net/glunoy/article/details/52037598 国内讲的乱七八糟,更有故作神秘提供Mono.Data.Sqlite.dll System.Data.dll的,就是不告诉你这两文件在哪里。。我很无语。 看国外的,多靠谱。 http://answers.unity3d.com/questions/743400/database
http://blog.csdn.net/glunoy/article/details/52037598
国内讲的乱七八糟,更有故作神秘提供Mono.Data.Sqlite.dll System.Data.dll的,就是不告诉你这两文件在哪里。。我很无语。 看国外的,多靠谱。http://answers.unity3d.com/questions/743400/database-sqlite-setup-for-unity.html 中文版如下。 1.先在Assets下新建Plugins文件夹。将C:Program FilesUnityEditorDataMonoBleedingEdgelibmono2.0 下的Mono.Data.Sqlite.dll System.Data.dll拷贝至刚才新建的文件夹Plugins 下。 2.到https://www.sqlite.org/download.html 下载最新版的sqlite Precompiled Binaries版本。或者你喜欢折腾下源码自己编也行。 记住windows64 32位的区别。里面解压出来会有sqlite3.def sqlite3.dll 也拷贝到上面的Plugins下。 3.要在Android底下使用sqlite3 必须到这个帖子下http://forum.unity3d.com/threads/sqlite-for-android-help-please.97043/#post-705960下载一个附件。里面包含了libsqlite3.so这个文件。然后将它放到Assets/Android下。 我不知道它和安卓系统里面的system/lib/libsqlite.so有啥区别。。因为我拿不出来那个文件。所以没有尝试。 3.5,在Player Setting里的 OtherSettings里有个Optimization 下边的API Compatbility Level 选择.NET 2.0。--这步漏了,补上 4.连接字符串.conn = "URI=file:" + Application.persistentDataPath + "/test.db"; 不管什么版本,都必须是这个目录。不推荐什么streaming asset 什么aseet。因为跨平台的版本,只有这个目录拥有可读写权限。 哪怕因此带来一些麻烦也没关系。(至于那些datasource=什么什么,我没有去试,也不想去弄清楚他们的区别)这个值 windows下目录对应为:C:Users你的用户名AppDataLocalLow公司名项目名 而在安卓下 对应为/data/data/包名/files 发布的时候必须注意。 至于ios....首先我得先有个ios再说吧.穷人装不起那个逼。 5.代码示例。从上面的老外连接照抄。不推荐什么sqllite hleper.cs当然,你要用我也没意见。代码如下:防止天草哪天心情不好又不给访问了。 string conn = "URI=file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db"; //Path to database. SqliteConnection dbconn; dbconn = new SqliteConnection(conn); dbconn.Open(); //Open connection to the database. SqliteCommand dbcmd = dbconn.CreateCommand(); string sqlQuery = "SELECT value,name,randomSequence " + "FROM PlaceSequence"; dbcmd.CommandText = sqlQuery; SqliteDataReader reader = dbcmd.ExecuteReader(); while (reader.Read()) { int value = reader.GetInt32(0); string name = reader.GetString(1); int rand = reader.GetInt32(2); Debug.Log( "value= "+value+" name ="+name+" random ="+ rand); } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; dbconn.Close(); dbconn = null; } 如果一定要用什么什么helper,推荐使用http://www.xuanyusong.com/archives/831 或者http://www.w2bc.com/Article/49868 这里的。其实没啥区别... 另外我能吐槽一下么。。。你们两个在构造函数里打开数据库,酱紫真的好处理返回值么?里面throw了异常,外面的包装函数又不处理异常,又不抛出异常,你们这是坑爹造不? 当然,上面的示例调用也没有处理异常... 附带一些多余的话. Debug.log有时候中文会乱码。只要将.cs文件的编码改成utf-8 无bom即可。用VS的话来讲 叫:utf8-无签名。为了跨平台,推荐都使用UTF-8。具体请自行搜索.. sqlite3 管理工具 推荐使用SQLite Expert Personal (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |