您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 程序开发 > 数据库编程 >
    使用unity连接并读取Access数据库
    时间:2015-02-02 10:47 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印




    直接为大家分享了使用unity连接Sql Server 。还有很多朋友使用unity连接Access


    在这里为大家分享下unity连接Access


    首先需要用到两个外部引用。System.Data.dll 和 System.EnterpriseServices.dll


    接下来直接贴出代码:



    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>0)
            {
                //读取数据
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    text = dt.Columns[0].ColumnName + " : " + dt.Rows[dt.Columns[0].ColumnName].ToString() + "  |  " + dt.Columns[1].ColumnName + " : " + dt.Rows[dt.Columns[1].ColumnName].ToString() + "  |  " + dt.Columns[2].ColumnName + " : " + dt.Rows[dt.Columns[2].ColumnName].ToString() + "  |  " + dt.Columns[3].ColumnName + " : " + dt.Rows[dt.Columns[3].ColumnName].ToString();
                    Debug.Log(dt.Columns[0].ColumnName + " : " + dt.Rows[dt.Columns[0].ColumnName].ToString() + "  |  " + dt.Columns[1].ColumnName + " : " + dt.Rows[dt.Columns[1].ColumnName].ToString() + "  |  " + dt.Columns[2].ColumnName + " : " + dt.Rows[dt.Columns[2].ColumnName].ToString() + "  |  " + dt.Columns[3].ColumnName + " : " + dt.Rows[dt.Columns[3].ColumnName].ToString());
                }
            }
        }
        public void OnGUI()
        {
            GUI.Label(new Rect(10,10,500,200),text);
        }
    }


    DLL文件下载地址 http://unity.jb51.net/yuanma/1105.html



    有什么问题可以留言哦。。。

    也可以进入 http://unity.jb51.net/ask/  这里。来提出你的问题哟。。。


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。