首先,准备工作:

  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. (二)ROS系统架构及概念 ROS Architecture and Concepts 以Kinetic为主更新 附课件PPT

    第2章 ROS系统架构及概念 ROS Architecture and Concepts PPT说明: 正文用白色,命令或代码用黄色,右下角为对应中文译著页码. 这一章需要掌握ROS文件系统,运行图级 ...

  2. argparse库 学习记录

    初始化 始见参数 name or flags action nargs default type choices required help dest metavar 总结 继上次的optparser ...

  3. Ubuntu LTS 系统学习使用体会和实用工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04

    Ubuntu LTS 系统学习体会和工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04 ubuntu入门必备pdf:http://download.csdn.net/de ...

  4. spark下使用submit提交任务后报jar包已存在错误

    使用spark submit进行任务提交,离线跑数据,提交后的一段时间内可以application可以正常运行.过了一段时间后,就抛出以下错误: org.apache.spark.SparkExcep ...

  5. SpriteKit中的共享动作(Sharing Actions)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在SpriteKit中某些动作需要一些额外的延时,如果每次都重 ...

  6. Web Service进阶(三)HTTP-GET, HTTP-POST and SOAP的比较

    XML Web Service支持三种协议来与用户交流数据.这三种协议分别是: 1.SOAP:Simple Object Access Protocol 2.HTTP-GET 3.HTTP-POST ...

  7. Android动态换肤(二、apk免安装插件方式)

    在上一篇文章Android动态换肤(一.应用内置多套皮肤)中,我们了解到,动态换肤无非就是调用view的setBackgroundResource(R.drawable.id)等方法设置控件的背景或者 ...

  8. SSH网上商城---用户激活

    在前面的博客中,小编主要结合SSH网上商城这个项目,简单的介绍了如何实现邮件发送的这个功能,邮件发送了,接下来就是激活了,为什么呢?现在大多网站都要通过对账号进行激活,然后才能注册成功,这是防止恶性注 ...

  9. java虚拟机 jvm 局部变量表实战

    java局部变量表是栈帧重要组中部分之一.他主要保存函数的参数以及局部的变量信息.局部变量表中的变量作用域是当前调用的函数.函数调用结束后,随着函数栈帧的销毁.局部变量表也会随之销毁,释放空间. 由于 ...

  10. 【Netty源码学习】ChannelPipeline(一)

    ChannelPipeline类似于一个管道,管道中存放的是一系列对读取数据进行业务操作的ChannelHandler. 1.ChannelPipeline的结构图: 在之前的博客[Netty源码学习 ...