2011-09-27 73 views
2

我想在C#程序中使用LINQ從數據庫中獲取信息。我發現很多示例顯示基本到高級查詢,但我找不到任何可以獲得基本數據庫連接的示例。請參閱下面的基本LINQ示例:C#LINQ如何從數據庫獲取數據源?

var adultNames = from person in people 
       where person.Age >= 18 
       select person.Name; 

我只是不能弄清楚如何到達特定的數據庫表並返回信息。我想能夠連接到數據庫表並返回一些信息。謝謝!

+0

我假定你正在尋找的例子並不表明你有首先創建一個數據集。一旦你創建了數據集,你就可以用上面的代碼引用它 – Jake

回答

2

Theres是連接數據庫的一種非常簡單的方法,但我建議您在之後閱讀應用配置以及項目的其他部分,以瞭解其工作原理。

在菜單欄中,轉到數據 - >添加新數據源。從這裏選擇數據庫然後是實體數據模型。按照其餘步驟爲您的項目創建一個數據源。

在你的程序,你可以通過創建數據源的對象:

WhatYouCalledTheDataSource datasourceObject =新WhatYouCalledTheDataSource();

然後,您可以通過更改您的查詢的第一行進行查詢此對象上:

var adultNames = from person in datasourceObject.people 

得到你想要的,數據一旦你的查詢,你可以將結果放到像列表:

List<string> queryResults = new List<string>(); 

queryResults.AddRange(adultNames); 

銘記我立足於本以爲名稱將是一個字符串。 您還可以創建基於表列出像

var adultNames = from person ... 
       ... 
       select person; 
List<people> queryResults = new List<people>(); 
queryResults.AddRange(adultNames); 
+0

我不知道添加數據源有多容易。這就是我一直想念的。非常感謝! – buzzzzjay

2

這聽起來像你一直在看LINQ的例子,它允許你從一個數據集中查詢。此外,您還需要稱爲對象關係映射器(Object Relational Mapper,ORM)。看看LINQ to SQLThe Entity Framework(更新)開始。這一層將反思數據庫並創建大量基礎設施,以基於數據模型爲您提供數據。

2

有許多的方法可以從數據庫中檢索數據。 ADO.NET是通用技術。你的具體選項有:

System.Data/SqlClient/ODP

您可以使用標準查詢系統在ADO.NET從使用ODBC的任何數據庫獲取數據,或使用本地數據提供商,如SqlClient或ODP。命名空間可以用來從SQL Server獲取數據。 Oracle數據提供程序(ODP)與Oracle一起使用。

您必須使用「原始」ADO.NET自己編寫查詢/存儲過程。

這裏是ADO.NET示例代碼的優秀上市:http://msdn.microsoft.com/en-us/library/dw70f090.aspx

這裏是Oracle的ODP鏈接:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

的LINQ to SQL

的LINQ to SQL是一個LINQ提供程序專門用於SQL Server數據庫。它仍然受支持,但被實體框架所取代。

這裏更多的細節:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

實體框架

實體框架原生支持與SQL Server和使用第三方或開源的數據提供者可以與Oracle合作。

Entity Framework 4/4.1將允許您使用實體數據模型(EDM)作爲數據庫的抽象。 EDM將顯示一組可與之交互的對象,並使用Context對象來檢索/提交數據到數據庫。 CRUD查詢是從您的LINQ語法動態生成的,因此在大多數情況下,您不必自己編寫T-SQL或PL-SQL查詢。

這是實體框架的一個基本的例子:
http://www.codeproject.com/KB/database/sample_entity_framework.aspx

1

如果你看看這個的NerdDinner pdf file創建一個MVC的解決方案,它顯示瞭如何一步一步使用LINQ to SQL

創建數據集
2

,如果你有一個數據庫表的人,那麼你可以使用LINQ到SQL從它返回的信息,你首先需要參考以下兩個組件。

using System.Data.Linq; 
using System.Data.Linq.Mapping; 

定義以下實體是這樣的:

[table] 
class people 
{ 
    [column] 
    public int Age { get; set; }; 
    [column] 
    public string Name { get; set; }; 
} 

那麼你可以編寫針對數據庫查詢參觀

Datacontext db = new DataContext("database Connection String"); 
var adultNames = from person in db.GetTable<people>() 
      where person.Age >= 18 
      select person.Name; 
+0

我看到一個例子,它添加到程序集,並在當時他們不會工作。我甚至沒有想過要添加對該項目的參考。你的回答讓我感謝這一點。謝謝! 您是否有任何有關如何將「數據庫連接字符串」格式化的示例? – buzzzzjay

+1

這是一個例子:''Data Source = .; Initial Catalog = NewAcademy; Integrated Security = True「',你可以從VS的服務器資源管理器獲取這個字符串,然後選擇數據庫,在屬性窗口中你會找到connectiostring屬性,有關如何格式化的詳細信息請參閱[this](http://msdn.microsoft.com/en-us/library/windows/desktop/ms722656%28v=vs.85%29.aspx) –