日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Unity3D 访问Access数据库

發布時間:2023/12/2 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D 访问Access数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity3D 訪問Access數據庫

在開始這個小教程之前呢,其實在網上你已經可以找到相關的資料了,但是我還是要把我自己做練習的一點東西分享出來。寫這個教程的主要原因呢,是一個朋友在u3d的官網論壇里,找到了這個demo,但是在他使用的過程中遇到了問題,我看了給他解決掉之后,為了其他朋友不至于發生同類的問題,特在此嘮叨一番。在開始主題之前呢,我真的想說,北京的公交太不給力了,我這幾天,每次等公交都要一個多小時,直接崩潰中。好,閑話不扯啦!下面開始我的教程之旅吧!

Access數據庫呢,是一個輕量級的數據庫,以前在學習.net應用開發的時候了解過。在pc的軟件開發中,很多時候,我們存儲的數據量不會很大的情況都會選擇他,主要他輕量級,容易部署。更多Access的問題,可以去微軟的官網查看。

在U3D中要訪問Access數據庫,我們需要用到兩個dll,System.Data.dll和System.EnterpriseServices.dll,缺一不可。我們找到這兩個dll放到u3d的Plugins文件夾下面。

下面我們創建一個Access數據庫版本是07樣式是*.accdb(03版本的Access數據庫的樣式為*.mdb)在我們進行code的時候,要根據不同的版本進行判斷啦,對于不同的Access數據庫版本,我們要對應不懂的文件后綴名。要不然會提示你數據庫文件是未知文件。 下面是讀取Access的一個demo,其他的修改,添加數據都是在修改他的sql語句啦,相關的知識,可以查看Access在.net中如何對Access進行CURD操作的。簡單的代碼如下: 復制代碼
  • /* |-------------------------------------------
  • * |作者: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>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);
  • ????}
  • }


  • 下一步,我們生成exe文件.執行完畢之后,我們打開生成的程序截圖如下: 為什么會出現這個問題。我在u3d里面看到了他的顯示啊,如下: 其實呢,我們在部署的時候,要把數據庫文件,copy到生成的文件夾下就可以啦!

    再次運行程序,查看效果。如下: 好,看到這里,你應該只到了,我今天重點要說的就是這個問題啦! 下面是我在制作demo時,遇到的問題還有些是我特意測試需要注意的地方: 注意: 1. 一定要記住的是,訪問Access數據庫時,那兩個dll缺一不可,缺少就會出現問題。 2. 在帶有dll動態鏈接庫的項目,要在打包時設置他的API兼容層級為.NET 2.0。 3. 使用不同版本的Access數據庫要對應不同版本相對應的后綴名。 4. 如果想單獨創建一個存放Access數據庫的文件夾,你需要在code時,找到這個文件夾,然后打包之后,把你的Access數據庫放到與code相對應的位置。要不然,檢測不到數據庫。 5. 在創建數據庫時要認真,嘿嘿,有可能是你的文件名字和后綴名之間多個空格,你的數據也會讀不出,在u3d中運行,會提示你未知文件。 6. 就是老生常談的話題了,sql查詢語句一定要記住,拼寫正確,標點符號也要對應起來,要不然,出現個小問題,會讓你DT好久。曾經在做應用時,也DT過。嘿嘿! 就先總結這幾點吧!有什么問題,我們在一塊交流進步啦! 最后還想說,在我逃離IT之前,我會努力的前行,為了我可以早點離開!

    轉載于:https://www.cnblogs.com/xiao-wei-wei/archive/2013/03/23/2976585.html

    總結

    以上是生活随笔為你收集整理的Unity3D 访问Access数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成人做爰66片免费看网站 | 亚洲精品久久久中文字幕 | 成人av在线一区二区 | 成人免费视频a | 日韩福利视频在线观看 | av片大全 | 青青视频在线免费观看 | 国产欧美日韩在线视频 | 久久97视频 | 中文字幕123 | 欧洲一级片 | 青草视频在线免费观看 | 少妇精品无码一区二区三区 | 日本精品一区二区在线观看 | 国产精品69久久 | 体内精视频xxxxx | 国产日产欧美一区二区 | 日本午夜在线 | 国产情侣露脸自拍 | 成人h片 | 国产又大又黑又粗免费视频 | 在线观看中文字幕码 | 成人亚洲欧美 | 日韩特一级 | 成人依人 | 国产精品久久久久影院老司 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 日本视频一区二区三区 | 国产亚洲精品成人无码精品网站 | 亚洲福利视频网 | 福利片在线观看 | 午夜激情电影院 | 日本黄色片免费看 | 狠狠干天天爱 | 亚洲精品乱码久久久久久蜜桃麻豆 | 综合色吧 | 亚洲男女在线 | 亚洲AV成人无码精电影在线 | 欧美在线观看免费高清 | 丝袜亚洲综合 | 亚洲av成人无码一二三在线观看 | 免费av一区二区三区 | 久久一区国产 | 亚洲精品一区二区 | 小妹色播 | 九热视频在线观看 | a在线天堂 | 亚洲精品视屏 | 涩涩精品 | 国精产品一区一区三区免费视频 | 麻豆国产精品视频 | 在线看a网站| 日韩精品久久久 | aaaaa黄色片 天堂网在线观看 | 欧美一区 | 免费看的毛片 | 在线看片中文字幕 | 91麻豆国产视频 | 天堂资源中文在线 | 欧美一级性视频 | 卡一卡二卡三 | 国产精品久久麻豆 | 色综合天天综合网国产成人网 | 俄罗斯毛片基地 | 男人天堂手机在线观看 | 久久在线免费 | www.xxx.国产 | 亚洲国产第一 | 欧美三级电影在线观看 | 91精品久久久久久久久中文字幕 | 亚洲综合色婷婷 | 色黄大色黄女片免费中国 | 99少妇| 欧美成人黄色网 | 激情91| 思思99re| 亚洲作爱 | 精品国产网| 福利网站在线观看 | 福利资源导航 | 亚洲欧美精品一区二区三区 | 欧美国产91 | www天堂网 | 综合网伊人 | 蜜臀视频在线播放 | 日本特级毛片 | 欧美日韩在线直播 | chien国产乱露脸对白 | 九九热精| 亚洲石原莉奈一区二区在线观看 | 婷婷色亚洲| 性久久久久久 | 在线成人一区 | 日本色网址 | 精产国品一二三产区m553麻豆 | 亚洲成人日韩 | 黑人av| 激情第四色 | 国产一区第一页 |