[转载]Unity3D 访问Access数据库
在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来。写这个教程的主要原因呢,是一个朋友在u3d的官网论坛里,找到了这个demo,但是在他使用的过程中遇到了问题,我看了给他解决掉之后,为了其他朋友不至于发生同类的问题,特在此唠叨一番。在开始主题之前呢,我真的想说,北京的公交太不给力了,我这几天,每次等公交都要一个多小时,直接崩溃中。好,闲话不扯啦!下面开始我的教程之旅吧!
Access数据库呢,是一个轻量级的数据库,以前在学习.net应用开发的时候了解过。在pc的软件开发中,很多时候,我们存储的数据量不会很大的情况都会选择他,主要他轻量级,容易部署。更多Access的问题,可以去微软的官网查看。
在U3D中要访问Access数据库,我们需要用到两个dll,System.Data.dll和System.EnterpriseServices.dll,缺一不可。我们找到这两个dll放到u3d的Plugins文件夹下面。
/* |-------------------------------------------
* |作者:Mr.野猪
* |
* |时间:2012/09/26 晚:23:56
* |
* |目的:用于技术交流
* |------------------------------------------
*/
using UnityEngine;
using System.Collections;
//引入命名空间
using System;
using System.Data;
using System.Data.Odbc;
public class RaderData : MonoBehaviour
{
/// <summary>
/// 声明一个接受读取数据字段值的变量
/// </summary>
string text = string.Empty;
public void Start()
{
//读取数据文件。
ReadStudent(Application.dataPath + "/Wild boar.accdb");
}
/// <summary>
/// 读取表数值的函数
/// </summary>
/// <param name="filetoread">数据文件的路径</param>
internal void ReadStudent(string filetoread)
{
//声明连接数据库的字段
string connection = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" + filetoread; //从表中查询所有数据
string sqlQuery = "select * from Student";
//打开数据库
OdbcConnection con = new OdbcConnection(connection);
//对数据库进行操作
OdbcCommand cmd = new OdbcCommand(sqlQuery,con);
//根据表名,读取数据到一个临时表
DataTable dt = new DataTable("Student");
//try catch finally进行了异常处理,这个是好习惯,嘿嘿
try
{
//打开数据库
con.Open();
//读取数据
OdbcDataReader reader = cmd.ExecuteReader();
//把数据加载到临时表
dt.Load(reader);
//在使用完毕之后,一定要关闭,要不然会出问题
reader.Close();
//关闭数据库
con.Close();
}
catch (Exception ex)
{
Debug.Log(ex.ToString());
}
finally
{
//判断数据库是否打开,如果打开就关闭。
if (con.State!=ConnectionState.Closed)
{
con.Close();
} //释放数据库资源
con.Dispose();
}
if (dt.Rows.Count>)
{
//读取数据
for (int i = ; i < dt.Rows.Count; i++)
{
text = dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString();
Debug.Log(dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString() + " | " + dt.Columns[].ColumnName + " : " + dt.Rows[dt.Columns[].ColumnName].ToString());
}
}
}
public void OnGUI()
{
GUI.Label(new Rect(,,,),text);
}
}



[转载]Unity3D 访问Access数据库的更多相关文章
- ADO访问Access数据库错误解决心得随笔
最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~ ...
- Unity访问Access数据库
首先,准备工作: 创建一个Access 数据库,命名AccessTest.accdb,添加一些数据用于测试 准备System.Data.dll与System.EnterpriseServices.dl ...
- 如何使用.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 ...
随机推荐
- C#算法基础之希尔排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- ASP判断当前页面上是否有参数ID传递过来
遇到了一个这样的ASP问题: 在当前页面上判断,是否有参数ID传递过来? 如果没有,显示“没有参数传递过来”. 如果有传递,但值为空,显示“存在参数,但参数为空” <% if (request( ...
- 实现C#给系统其他窗口输入的思路
将窗口实现浮动,从而不获取焦点 使用系统API获取窗口的句柄 根据数据库或者xml文件等动态添加 使用系统API发送文本到达指定窗口输入框
- OC4_实例变量的作用域
// // Dog.h // OC4_实例变量的作用域 // // Created by zhangxueming on 15/6/16. // Copyright (c) 2015年 zhangxu ...
- DOM_节点层次
一.DOM1级定义了一个Node接口,这个接口是由DOM中的所有节点类型实现的.Node接口共有12种节点类型,常见的是元素节点.文本节点和文档节点. Node.ELEMENT_NODE(1);——元 ...
- GISer 应届生找工作历程(完结)
有半个月没更博客了,前几天在学校准备这保研,因为没有时间复习高数自然就没有过. 也没啥的,我本来就不打算复习,就是看看运气咋样(哈哈).在昨天开始跑的招聘会,一天下来不同地方跑了三家挺累的,记录 ...
- vim 跳转命令
基本跳转: hjkl:左下上右 HML:当前屏幕顶.中.底部 web:下一单词词首.下一单词词尾.前一单词词首 gg:文件首 G:文件末尾 ngg/nG:第n行 ta:移动到所在行之后第一个字符a ...
- 安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法
今天重装系统了,在安装WP8 SDK时,安装了一小部分就提示“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的错误. 根据错误提示,貌似跟时间有关,百度了下.果真.把系统时间往前调 ...
- Java多线程(一) 多线程的基本使用
在总结JDBC数据库连接池的时候,发现Java多线程这块掌握得不是很好,因此回头看了下多线程的内容.做一下多线程模块的学习和总结,稳固一下多线程这块的基础.关于多线程的一些理论知识,这里不想啰嗦太多, ...
- Mysql 存储过程小例子
创建存储过程: DELIMITER $$ USE `database_name`$$ DROP PROCEDURE IF EXISTS `add_or_update_user`$$ )) BEGIN ...