首先,准备工作:

  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. “你什么意思”之基于RNN的语义槽填充(Pytorch实现)

    1. 概况 1.1 任务 口语理解(Spoken Language Understanding, SLU)作为语音识别与自然语言处理之间的一个新兴领域,其目的是为了让计算机从用户的讲话中理解他们的意图 ...

  2. RxJava(十)switchIfEmpty操作符实现Android检查本地缓存逻辑判断

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52585912 本文出自:[余志强的博客] switchIfEmpty ...

  3. Windows Python requests 详细模块安装方法

    据说requests是一个很吊的处理网络问题的第三方库.我折腾了半天.终于在Win上安装好了. 网上找到的都不详细,我是反复尝试才成功的. 还是自己写一个傻瓜式的指南吧: 1.安装 Setuptool ...

  4. EBS技术开发之返利开发

    返利是指公司间应收款项按一定比率的返还给客户.返利开发实质就是实现对应收发票的更改和新增(暂时我的理解) 一.对发票行更改 PACKAGE AP_INVOICE_LINES_ALL_PRIVATE I ...

  5. Spring之Core模块

    Core模块主要的功能是实现了控制反转与依赖注入.Bean配置以及加载.Core模块中有Beans.BeanFactory.BeanDefinitions.ApplicationContext等概念 ...

  6. 【Netty源码分析】数据读取过程

    首先客户端连接到服务端时服务端会开启一个线程,不断的监听客户端的操作.

  7. eclipse无法连接genymotion+Unable to start the Genymotion virtual device

    八月的开头,带着希望和期待,小编继续着实习之路,闭眼呼吸,阳光勾勒微笑,做Android项目,真心想吐槽一下eclipse中的虚拟机,那速度真叫一个慢啊,她肯定是属乌龟的,要不就是蜗牛,这个让小编很是 ...

  8. windows与linux的文件夹共享

    公司配备了一台性能还算不错的电脑,不过是台式机.我在上面装了ubuntu,但是我的代码工作目录全部都在我自己的win7笔记本上.有时程序开多了就容易卡,于是想到用装ubuntu的台式机来访问我win7 ...

  9. mqtt推送介绍

    方案1.使用GCM服务(Google Cloud Messaging) 简介:Google推出的云消息服务,即第二代的C2DM. 优点:Google提供的服务.原生.简单,无需实现和部署服务端. 缺点 ...

  10. Ext JS 6开发实例(四) :调整主视图

    上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...