程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> Linq to DataSet 之Access查詢

Linq to DataSet 之Access查詢

編輯:關於Access數據庫

Linq核心的組成部分有LINQ to SQL, LINQ to DataSet, LINQ to EntitIEs和LINQ to XML,根據Linq對於其他的集成很快會由微軟或第三方實現,而改技術對於Access數據庫的支持並沒有像SQL Server那麼友好,今天嘗試用Linq查詢Access數據文件時遇到了不少麻煩,在網上搜索後發現很多朋友都遇到了相同的問題,經過反復的嘗試,終於初步完成了Access的查詢。
 
  下面是實現步驟:
 
  1.准備: 用Access2007建立一個users.mdb文件,裡面定義一個users表包括了以下三個字段——ID(int),Name(文本),PassWord(文本)。
 
  2.新建一個控制台程序後,導入改數據連接,VS2008會自動的生成與數據表對應的強類型數據集並且完成相應的配置文件,其中關鍵的配置代碼如下:
 ......
    <connectionStrings>
        <add name="Chp.PropertIEs.Settings.usersConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\users.accdb;Persist Security Info=True"
            providerName="System.Data.OleDb" />
    </connectionStrings>
......
  3.實現代碼
            //定義相關的DataSet和TableAdapter
            usersDataSet uDS = new usersDataSet();
            usersTableAdapter uTA = new usersTableAdapter();
            usersDataSet.usersDataTable uTable = new usersDataSet.usersDataTable();        uTA.ClearBeforeFill=true;
            uTA.Fill(uTable);
            ......
            //通過LinQ查詢users表中用戶名為需要查詢的信息,這裡AsEnumerable()是必須的
            //而u.FIEld<string>("Name")=="......"的意思是判斷是否為需要查詢的類型為string的Name字段
            var users = (from u in uTable.AsEnumerable()
                             where u.FIEld<string>("Name")=="......"
                             select u).First();
            ......
            //打印查詢到的PassWord
            Console.WriteLine("Password:{0}", users.FIEld<string>("PassWord") );

  總結:其實這裡的Linq查詢Access主要還是通過LINQ to DataSet實現和完成的,但是從實現方式上又是按照了ORM的模式來執行的,不得不說的是Linq為數據的查詢提供了極大的便利,同時也簡化了數據的操作,開始明白微軟為解決Data!=Object的意圖了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved