Unity访问Access数据库
首先,准备工作:
创建一个Access 数据库,命名AccessTest.accdb,添加一些数据用于测试
准备System.Data.dll与System.EnterpriseServices.dll两个插件,这是访问Access数据需要引用的dll
如果完成后需要在其他电脑上访问,并且该电脑没有安装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数据库的更多相关文章
- ADO访问Access数据库错误解决心得随笔
最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~ ...
- [转载]Unity3D 访问Access数据库
在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来.写这个教程的主要原因呢,是一个朋友在u3d的官网论坛里,找到了这个demo,但是在他使用的过 ...
- 如何使用.net访问Access数据库 (转)
前言:今天整理程序,看到之前写的一个Demo,也不知道是从哪里参考的了,写到这里,留作备用吧. 使用.net访问Access数据库:1.BL层:新增一个DataAccess类. Code].Defau ...
- Excel中使用VBA访问Access数据库
VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...
- C#.NET ORM 如何访问 Access 数据库 [FreeSql]
最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...
- vc访问ACCESS数据库
在现代软件开发中,数据库技术被越来越广泛应用,很多项目都存在着大量的数据需要存储,通常都会采用数据库来存储这些数据.最初,数据库厂商推出一个新的数据库产品时,相应的,他会为程序员提供一套访问该数据库的 ...
- Jackcess 1.2.13 发布,Java 访问 Access 数据库
Jackcess 1.2.13 包含新的方法用于在数据库和附件内容解码中查找复杂值类型的关系,修复了 CodeHandler 相关的一些小 bug. Jackcess 是一个Java 类库,用来读写微 ...
- 访问Access数据库(有多个数据库时 体现多态)
如果想编写单机版MIS.小型网站等对数据库性能要求不高的系统,又不想安装SQLServer,可以使用Access(MDAC),只要一个mdb文件就可以了.使用Access创建mdb文件,建表.OleD ...
- golang ODBC 访问access数据库(问题解决之心理路程)
最近项目需要,需要操作access,以前是用VC++ OLE访问,网络用ACE库,感觉很庞大...决定用go试试 网上用的最多的就是这个https://github.com/weigj/go-odbc ...
随机推荐
- xshell连接centos与ubuntu
操作系统:Windows 7 应用软件:Ware Workstation &Xshell 5 Linux:CentOS 7 Minimal &Ubuntu Server 16 ==== ...
- Docker端口映射实现
默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器. 容器访问外部实现 容器所有到外部网络的连接,源地址都会被NAT成本地系统的IP地址.这是使用 iptables 的源地址伪装 ...
- Bootstrap3 表格-响应式表格
将任何 .table 元素包裹在 .table-responsive 元素内,即可创建响应式表格,其会在小屏幕设备上(小于768px)水平滚动.当屏幕大于 768px 宽度时,水平滚动条消失. Fir ...
- OBJ文件格式分析工具: objdump, nm,ar
首先简要阐述关于gcc.glibc和 binutils模块之间的关系 一.关于gcc.glibc和binutils模块之间的关系 1.gcc(gnu collect compiler)是一组编译工具的 ...
- 用premake5创建lua532工程
用premake5创建lua532工程 (金庆的专栏) lua-5.3.2只有Makefile,根据readme.html中"Building Lua on other systems&qu ...
- Leetcode解题-链表(2.2.2)ReverseLinkedList
题目:2.2.2 Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in on ...
- Spring之WEB模块
Spring的WEB模块用于整合Web框架,例如Struts 1.Struts 2.JSF等 整合Struts 1 继承方式 Spring框架提供了ActionSupport类支持Struts 1的A ...
- Android自定义View(二、深入解析自定义属性)
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51468648 本文出自:[openXu的博客] 目录: 为什么要自定义属性 怎样自定义属性 ...
- 使用Contacts Contract Content Provider操作通讯录最佳实践
Android向所有被赋予READ_CONTACTS权限的应用程序提供了联系人信息数据库的完全访问权限.Contacts Contract使用3层数据模型去存储数据,下面介绍Contacts Cont ...
- 使用QGIS将文本坐标转换为矢量文件
本文主要是说明如果使用QGIS将文本格式的点坐标转换为矢量文件(如shapefile格式). 所需工具:QGIS 所需数据:文本格式的点文件 所需要处理的点坐标文件如下所示, 114.2 22.15 ...