首先,准备工作:

  1. 创建一个Access 数据库,命名AccessTest.accdb,添加一些数据用于测试

  2. 准备System.Data.dll与System.EnterpriseServices.dll两个插件,这是访问Access数据需要引用的dll

  3. 如果完成后需要在其他电脑上访问,并且该电脑没有安装Office,就可以要求他安装access访问组件,然后就可以运行了,所有的相应组件与代码,后面都会给一个网盘链接

然后开始创建Unity工程

1.在unity工程文件夹Assets同级目录下创建一个SQLData文件夹用来存放Access数据库文件AccessTest.accdb

2.在unity工程文件夹Assets目录下创建一个Plugins文件夹用来存放System.Data.dll与System.EnterpriseServices.dll两个dll文件

3.创建一个功能脚本AccessData.cs,用来访问Access数据库

  1. using System.Data.Odbc;
  2. using System.Data;
  3. using System;
  4. /****************************************
  5. * 功能:访问access数据库.
  6. * 创建: 2015-10-19 _D
  7. *
  8. * *************************************/
  9. public class AccessData
  10. {
  11. /// <summary>
  12. /// 本类对象
  13. /// </summary>
  14. private static AccessData accessData;
  15. /// <summary>
  16. /// 连接对象
  17. /// </summary>
  18. private OdbcConnection con;
  19.  
  20. /// <summary>
  21. ///初始化并返回本类对象
  22. /// </summary>
  23. /// <returns></returns>
  24. public static AccessData getInstance()
  25. {
  26. if (accessData == null)
  27. {
  28. accessData = new AccessData();
  29. accessData.con = new OdbcConnection();
  30. }
  31. return accessData;
  32. }
  33.  
  34. /// <summary>
  35. /// 数据库连接函数
  36. /// </summary>
  37. /// <param name="accessPath">access数据库路径</param>
  38. public void Connection(string accessPath)
  39. {
  40. string connection = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" + accessPath;
  41. con.ConnectionString = connection;
  42. try
  43. {
  44. if(con.State==ConnectionState.Closed)
  45. con.Open();
  46. }
  47. catch (Exception e)
  48. {
  49. throw new Exception(e.Message);
  50. }
  51. }
  52.  
  53. /// <summary>
  54. /// 断开与数据库的连接
  55. /// </summary>
  56. public void Colse()
  57. {
  58. if (con.State != ConnectionState.Closed)
  59. {
  60. con.Close();
  61. }
  62. }
  63. /// <summary>
  64. /// 操作数据库
  65. /// </summary>
  66. /// <param name="sql">sql语句</param>
  67. /// <param name="dataTableName">返回的DataTable的名称</param>
  68. /// <returns></returns>
  69. public DataTable OperateAccess(string sql, string dataTableName)
  70. {
  71. OdbcCommand cmd = new OdbcCommand(sql,con);
  72. DataTable dt = new DataTable(dataTableName);
  73. OdbcDataReader reader = cmd.ExecuteReader();
  74. dt.Load(reader);
  75. reader.Close();
  76. return dt;
  77. }
  78. }

4.创建一个测试脚本Test.cs,用来具体操作Access数据库

  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Data;
  4.  
  5. public class Test : MonoBehaviour {
  6. /// <summary>
  7. /// Access数据库路径
  8. /// </summary>
  9. private string accessPath;
  10.  
  11. // Use this for initialization
  12. void Start () {
  13. accessPath = Application.dataPath;
  14. int num=accessPath.LastIndexOf("/");
  15. accessPath = accessPath.Substring(0, num);
  16. accessPath += "/SQLData/AccessTest.accdb";
  17.  
  18. AccessData.getInstance().Connection(accessPath);
  19. }
  20.  
  21. string text = "";
  22. // Update is called once per frame
  23. void OnGUI () {
  24. if (GUI.Button(new Rect(0, 0, 100, 30), "查询"))
  25. {
  26. string sql = "select * from t_First";
  27. DataTable dt = AccessData.getInstance().OperateAccess(sql, "select_t_First");
  28.  
  29. for (int i = 0; i < dt.Rows.Count; i++)
  30. {
  31. for (int j = 0; j < dt.Columns.Count; j++)
  32. {
  33. text +=dt.Columns[j].ColumnName + ":" + dt.Rows[i][dt.Columns[j].ColumnName]+" ";
  34. }
  35. text += "\n";
  36. }
  37. }
  38. GUI.Label(new Rect(0, 60, 200, 60), text);
  39. }
  40. }

5.将Test脚本绑定在场景物体中,运行测试

Unity访问Access数据库的更多相关文章

  1. ADO访问Access数据库错误解决心得随笔

    最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~ ...

  2. [转载]Unity3D 访问Access数据库

    在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来.写这个教程的主要原因呢,是一个朋友在u3d的官网论坛里,找到了这个demo,但是在他使用的过 ...

  3. 如何使用.net访问Access数据库 (转)

    前言:今天整理程序,看到之前写的一个Demo,也不知道是从哪里参考的了,写到这里,留作备用吧. 使用.net访问Access数据库:1.BL层:新增一个DataAccess类. Code].Defau ...

  4. Excel中使用VBA访问Access数据库

    VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...

  5. C#.NET ORM 如何访问 Access 数据库 [FreeSql]

    最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...

  6. vc访问ACCESS数据库

    在现代软件开发中,数据库技术被越来越广泛应用,很多项目都存在着大量的数据需要存储,通常都会采用数据库来存储这些数据.最初,数据库厂商推出一个新的数据库产品时,相应的,他会为程序员提供一套访问该数据库的 ...

  7. Jackcess 1.2.13 发布,Java 访问 Access 数据库

    Jackcess 1.2.13 包含新的方法用于在数据库和附件内容解码中查找复杂值类型的关系,修复了 CodeHandler 相关的一些小 bug. Jackcess 是一个Java 类库,用来读写微 ...

  8. 访问Access数据库(有多个数据库时 体现多态)

    如果想编写单机版MIS.小型网站等对数据库性能要求不高的系统,又不想安装SQLServer,可以使用Access(MDAC),只要一个mdb文件就可以了.使用Access创建mdb文件,建表.OleD ...

  9. golang ODBC 访问access数据库(问题解决之心理路程)

    最近项目需要,需要操作access,以前是用VC++ OLE访问,网络用ACE库,感觉很庞大...决定用go试试 网上用的最多的就是这个https://github.com/weigj/go-odbc ...

随机推荐

  1. JMeter(十三)-代理服务器录制脚本

    今天重点说一下jmeter如何利用自身的代理服务器录制脚本 1:工作台下创建代理服务器 2:配置代理,选择录制控制器 3:在Requests FIltering下添加排除模式,配置正则表达式.否则会录 ...

  2. CSDN博客投票活动开始了

    自己坚持写博客,一方面是为了将自己对知识点的理解做一个总结,另一方面也是因为自己看到了很多无私奉献分享自己知识的小伙伴们,因此自己也想像他们那样尽自己微薄之力把自己对某一知识点的理解分享给大家,或许算 ...

  3. Linux下端口复用(SO_REUSEADDR与SO_REUSEPORT)

    freebsd与linux下bind系统调用小结:    只考虑AF_INET的情况(同一端口指ip地址与端口号都相同) freebsd支持SO_REUSEPORT和SO_REUSEADDR选项,而l ...

  4. Android底部导航栏

    Android底部导航栏 今天简单写了一个底部导航栏,封装了一个库,用法比较简单 效果图 Github地址:https://github.com/kongqw/KqwBottomNavigation ...

  5. [Mysql]Innodb 独立表空间和共享表空间

    innodb有2中表空间方式: 共享表空间 和 独立表空间 查询数据的设置: show variables like '%per_table'; 默认是共享表空间,独立表空间在配置文件中添加 inno ...

  6. 18 UI美化状态集合的位图selector

    当我们某个控件 想在不同状态下显示不同的背景图的需求 如我们需要按钮在正常状态显示一种图 按下显示另一背景图 或者单选框被选中时是一种显示图片 没选中是另一种背景图 例子 按钮在不同状态显示不同的背景 ...

  7. The Ultimate Guide To iPhone Resolutions

    备忘:http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutionshttp://appicontemplate.com/

  8. JDK 7中的文件操作的新特性

    文件系统综述 一个文件系统在某种媒介(通常是一个或多个硬盘)上存储和组织文件.如今的大多数文件系统都是以树状结构来存储文件.在树的顶端是一个或多个根节点,在根节点一下,是文件和目录(在Windows系 ...

  9. UE4帧动画Matineed

    发一句牢骚,ue4除了渲染好一点,其他操作都没有unity便利,最近需要在项目中,调几个简单的动画使用到了Matineed,相当不好用.也可能是unity转ue4,有先入为主的观念,哈哈,never ...

  10. iOS开发之四:常用控件--UIButton的使用

    在介绍UIButton的用法前,要先了解一下它的父类UIControl,UIControl是所有具有事件处理功能控件的父类. 而该类控件一般响应事件又有三种形式:基于触摸.基础值.基础编辑.控件的层次 ...