展架设计在哪个网站做,下载互联网,有哪些大站用wordpress,怎么设计网页主页Unity3D 访问Access数据库 在开始这个小教程之前呢#xff0c;其实在网上你已经可以找到相关的资料了#xff0c;但是我还是要把我自己做练习的一点东西分享出来。写这个教程的主要原因呢#xff0c;是一个朋友在u3d的官网论坛里#xff0c;找到了这个demo#xff0c;但是…Unity3D 访问Access数据库 在开始这个小教程之前呢其实在网上你已经可以找到相关的资料了但是我还是要把我自己做练习的一点东西分享出来。写这个教程的主要原因呢是一个朋友在u3d的官网论坛里找到了这个demo但是在他使用的过程中遇到了问题我看了给他解决掉之后为了其他朋友不至于发生同类的问题特在此唠叨一番。在开始主题之前呢我真的想说北京的公交太不给力了我这几天每次等公交都要一个多小时直接崩溃中。好闲话不扯啦下面开始我的教程之旅吧Access数据库呢是一个轻量级的数据库以前在学习.net应用开发的时候了解过。在pc的软件开发中很多时候我们存储的数据量不会很大的情况都会选择他主要他轻量级容易部署。更多Access的问题可以去微软的官网查看。在U3D中要访问Access数据库我们需要用到两个dllSystem.Data.dll和System.EnterpriseServices.dll缺一不可。我们找到这两个dll放到u3d的Plugins文件夹下面。 下面我们创建一个Access数据库版本是07样式是*.accdb03版本的Access数据库的样式为*.mdb在我们进行code的时候要根据不同的版本进行判断啦对于不同的Access数据库版本我们要对应不懂的文件后缀名。要不然会提示你数据库文件是未知文件。 下面是读取Access的一个demo其他的修改添加数据都是在修改他的sql语句啦相关的知识可以查看Access在.net中如何对Access进行CURD操作的。简单的代码如下 复制代码 /* |-------------------------------------------* |作者Mr.野猪* |* |时间2012/09/26 晚23:56* |* |目的用于技术交流* |------------------------------------------*/using UnityEngine;using System.Collections;//引入命名空间using System;using System.Data;using System.Data.Odbc;public class RaderData : MonoBehaviour{ /// summary /// 声明一个接受读取数据字段值的变量 /// /summary string text string.Empty; public void Start() { //读取数据文件。 ReadStudent(Application.dataPath /Wild boar.accdb); } /// summary /// 读取表数值的函数 /// /summary /// param namefiletoread数据文件的路径/param internal void ReadStudent(string filetoread) { //声明连接数据库的字段 string connection Driver{Microsoft Access Driver (*.mdb, *.accdb)}; DBQ filetoread; //从表中查询所有数据 string sqlQuery select * from Student; //打开数据库 OdbcConnection con new OdbcConnection(connection); //对数据库进行操作 OdbcCommand cmd new OdbcCommand(sqlQuery,con); //根据表名读取数据到一个临时表 DataTable dt new DataTable(Student); //try catch finally进行了异常处理这个是好习惯嘿嘿 try { //打开数据库 con.Open(); //读取数据 OdbcDataReader reader cmd.ExecuteReader(); //把数据加载到临时表 dt.Load(reader); //在使用完毕之后一定要关闭要不然会出问题 reader.Close(); //关闭数据库 con.Close(); } catch (Exception ex) { Debug.Log(ex.ToString()); } finally { //判断数据库是否打开如果打开就关闭。 if (con.State!ConnectionState.Closed) { con.Close(); } //释放数据库资源 con.Dispose(); } if (dt.Rows.Count0) { //读取数据 for (int i 0; i dt.Rows.Count; i) { text dt.Columns[0].ColumnName : dt.Rows[dt.Columns[0].ColumnName].ToString() | dt.Columns[1].ColumnName : dt.Rows[dt.Columns[1].ColumnName].ToString() | dt.Columns[2].ColumnName : dt.Rows[dt.Columns[2].ColumnName].ToString() | dt.Columns[3].ColumnName : dt.Rows[dt.Columns[3].ColumnName].ToString(); Debug.Log(dt.Columns[0].ColumnName : dt.Rows[dt.Columns[0].ColumnName].ToString() | dt.Columns[1].ColumnName : dt.Rows[dt.Columns[1].ColumnName].ToString() | dt.Columns[2].ColumnName : dt.Rows[dt.Columns[2].ColumnName].ToString() | dt.Columns[3].ColumnName : dt.Rows[dt.Columns[3].ColumnName].ToString()); } } } public void OnGUI() { GUI.Label(new Rect(10,10,500,200),text); }} 下一步我们生成exe文件.执行完毕之后我们打开生成的程序截图如下 为什么会出现这个问题。我在u3d里面看到了他的显示啊如下 其实呢我们在部署的时候要把数据库文件copy到生成的文件夹下就可以啦 再次运行程序查看效果。如下 好看到这里你应该只到了我今天重点要说的就是这个问题啦 下面是我在制作demo时遇到的问题还有些是我特意测试需要注意的地方 注意 1. 一定要记住的是访问Access数据库时那两个dll缺一不可缺少就会出现问题。 2. 在带有dll动态链接库的项目要在打包时设置他的API兼容层级为.NET 2.0。 3. 使用不同版本的Access数据库要对应不同版本相对应的后缀名。 4. 如果想单独创建一个存放Access数据库的文件夹你需要在code时找到这个文件夹然后打包之后把你的Access数据库放到与code相对应的位置。要不然检测不到数据库。 5. 在创建数据库时要认真嘿嘿有可能是你的文件名字和后缀名之间多个空格你的数据也会读不出在u3d中运行会提示你未知文件。 6. 就是老生常谈的话题了sql查询语句一定要记住拼写正确标点符号也要对应起来要不然出现个小问题会让你DT好久。曾经在做应用时也DT过。嘿嘿 就先总结这几点吧有什么问题我们在一块交流进步啦 最后还想说在我逃离IT之前我会努力的前行为了我可以早点离开 转载于:https://www.cnblogs.com/xiao-wei-wei/archive/2013/03/23/2976585.html