[转载]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 ...
随机推荐
- HDOJ2018母牛的故事
母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDOJ2014青年歌手大奖赛_评委会打分
青年歌手大奖赛_评委会打分 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- iOS 9 之后更改状态栏字体颜色
设置statusBar的[前景部分] 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(UIStatusBarStyleDefault) 白色(UISta ...
- krpano资料
- CSS样式一
样式 首先明确: HTML标签也有标签的属性,CSS中的样式也称作为属性,而且某些html中的属性与css中的属性同名,并且作用也相同,但是属于不同的技术. 尺寸样式: 几乎所有的标签有可以设置 wi ...
- 代码优化—From <effective C++>
1.尽可能的延后变量定义式的出现时间 不止应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止. 如果这样不仅能够避免构造和析构非必要对象,还可以避免无 ...
- thinkphp 前后版本ajaxReturn方法的分别
之前用的是thinkphp2的版本现在改到thinkphp3.2已上的版本,发现ajaxReturn这个方法返回的数据不一样了,现在做下记录 thinkphp2的ajaxReturn的实现原码 pro ...
- EF迁移
第一步是为上下文启用迁移Enable-Migrations 命令 Add-Migration AddBlogUrl 将根据自创建上次迁移以来您对模型所做的更改,为下一次迁移搭建基架. Update-D ...
- [DevExpress]GridControl之CustomColumnDisplayText Helper
在实际开发中,有时候需要对GridControl中列值进行转义,譬如1转义成完成等等,一般在诸如CustomColumnDisplayText事件中能够轻松完成,为了提高代码复用性,所以对Custom ...
- iterm2 配色修改
打开终端 输入 cd ~ vim .bash_profile 插入 export CLICOLOR= export LSCOLORS=gxfxcxdxbxegedabagacad export PS1 ...