首先,准备工作:

  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数据库

using System.Data.Odbc;
using System.Data;
using System;
/****************************************
* 功能:访问access数据库.
* 创建: 2015-10-19 _D
*
* *************************************/
public class AccessData
{
/// <summary>
/// 本类对象
/// </summary>
private static AccessData accessData;
/// <summary>
/// 连接对象
/// </summary>
private OdbcConnection con; /// <summary>
///初始化并返回本类对象
/// </summary>
/// <returns></returns>
public static AccessData getInstance()
{
if (accessData == null)
{
accessData = new AccessData();
accessData.con = new OdbcConnection();
}
return accessData;
} /// <summary>
/// 数据库连接函数
/// </summary>
/// <param name="accessPath">access数据库路径</param>
public void Connection(string accessPath)
{
string connection = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" + accessPath;
con.ConnectionString = connection;
try
{
if(con.State==ConnectionState.Closed)
con.Open();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
} /// <summary>
/// 断开与数据库的连接
/// </summary>
public void Colse()
{
if (con.State != ConnectionState.Closed)
{
con.Close();
}
}
/// <summary>
/// 操作数据库
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="dataTableName">返回的DataTable的名称</param>
/// <returns></returns>
public DataTable OperateAccess(string sql, string dataTableName)
{
OdbcCommand cmd = new OdbcCommand(sql,con);
DataTable dt = new DataTable(dataTableName);
OdbcDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
reader.Close();
return dt;
}
}

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

using UnityEngine;
using System.Collections;
using System.Data; public class Test : MonoBehaviour {
/// <summary>
/// Access数据库路径
/// </summary>
private string accessPath; // Use this for initialization
void Start () {
accessPath = Application.dataPath;
int num=accessPath.LastIndexOf("/");
accessPath = accessPath.Substring(0, num);
accessPath += "/SQLData/AccessTest.accdb"; AccessData.getInstance().Connection(accessPath);
} string text = "";
// Update is called once per frame
void OnGUI () {
if (GUI.Button(new Rect(0, 0, 100, 30), "查询"))
{
string sql = "select * from t_First";
DataTable dt = AccessData.getInstance().OperateAccess(sql, "select_t_First"); for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
text +=dt.Columns[j].ColumnName + ":" + dt.Rows[i][dt.Columns[j].ColumnName]+" ";
}
text += "\n";
}
}
GUI.Label(new Rect(0, 60, 200, 60), text);
}
}

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. Node.js TLS/SSL

    Stability: 3 - Stable 可以使用 require('tls') 来访问这个模块. tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安 ...

  2. Linux 虚存的性能问题

    虚存子系统是所有 UNIX 系统的核心组件.下面讨论虚存系统的实现及其对操作系统中几乎其他所有子系统的作用和影响.首先详细说明一些基本的内存管理问题:然后具体分析 Linux 操作系统如何实施虚存管理 ...

  3. 《Java多线程编程核心技术》推荐

    写这篇博客主要是给猿友们推荐一本书<Java多线程编程核心技术>. 之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象. 只要你有一点点 ...

  4. Tomcat7源码环境搭建

    一.下载Tomcat7源码 从官网上下载Tomcat源码,   http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/src/apache-t ...

  5. Hive基本原理及环境搭建

    今天我主要是在折腾这个Hive,早上看了一下书,最开始有点凌乱,后面慢慢地发现,hive其实挺简单的,以我的理解就是和数据库有关的东西,那这样的话对我来说就容易多啦,因为我对sql语法应该是比较熟悉了 ...

  6. 小米手机无法连接eclipse调试解决方案

    今天在做百度地图开发的时候,用genymotion调试一直出错,重启几次都是错的,后来我换成真机发现好了.当然我的小米3连接eclipse一直连不进去,折腾死我了,在网上查了很多资料,发现很多都不能用 ...

  7. android拍照获得图片及获得图片后剪切设置到ImageView

    ok,这次的项目需要用到设置头像功能,所以做了个总结,直接进入主题吧. 先说说怎么 使用android内置的相机拍照然后获取到这张照片吧 直接上代码: Intent intentFromCapture ...

  8. Hibernate之配置文件

    可持久化对象有以下三种状态: 临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失.随时可能被垃圾回收器 ...

  9. Dynamics CRM 在Visual Studio中开启XML编辑的智能提示

    对于.net开发人员来说Visual Studio这一开发工具自然是再熟悉不过,它强大的功能给我们的编程带来了极大的方便,代码智能提示就属其中一项. 在Dynamic CRM的开发中在各种工具出来之前 ...

  10. C语言一个双向链表的实现

    首先编写头文件,头文件里做相关的定义和声明,DList.h内容如下: #ifndef DList_H #define DList_H typedef int Item; typedef struct ...