2013-05-29 40 views
-3

以下是我如何在.NET 2.0中進行數據訪問。我應該如何使用LINQ.NET 4.0如何使用LINQ來做簡單的數據庫查詢?

Dim dt As DataTable 
Using oDB As OleDbConnection = GetDbConnection() 
    oDB.Open() 
    Using oCmd As New OleDbCommand("SELECT * FROM TABLE1 WHERE COLUMN1 = @id", oDB) 
    oCmd.Parameters.AddWithValue("@id", UserId) 
    oDB.Open() 
    dt = New DataTable() 
     Using da As OleDbDataAdapter = New OleDbDataAdapter(oCmd) 
      da.Fill(dt) 
     End Using 
    End Using 
End Using 
Msgbox "Surname: " + dt.Rows(0)("Surname") 
+7

您確定這是一個關於Stackoverflow的好問題嗎?您應該閱讀一些關於'LINQ to Entities'的教程。 –

+2

實體框架入門(EF)http://msdn.microsoft.com/en-us/data/ee712907 –

+0

對實體不感興趣。這是我正在訪問的預先存在的數據庫。 – CJ7

回答

1
DataClasses1DataContext db = new DataClasses1DataContext(); 

var query = (from u in db.table1 where u.Column1 == id select u).FirstOrDefault; 
+4

爲什麼'FirstOrDefault'? –

+0

以確保只有一條記錄會被退回 –

+1

但是OP在哪裏說他想要那個? :)我讀的問題就像他想要一個集合('da.Fill(dt)') –

1

這是如果你使用Entity Framework你將如何執行查詢:

using(var context = new MyEntities()) 
{ 
    var result = context.Table1.Where(x => x.Column1 == id); 
} 

你也可以考慮先從LINQ to SQL

0

首先,實體框架必須安裝在您的機器上。你將不得不在你的項目中添加實體模型。它將通過使用內部Visual Studio工具自動將所有數據庫表映射到類中。那麼你必須像檢索數據一樣。

假設有在你的數據庫被映射到Employee類在.NET項目中的表Employee

您必須使用以下代碼才能獲得年齡小於45歲的員工,其中AgeEmployee表的屬性。它將自動映射爲您的Employee類的屬性。

我們走吧。

using(var _entities = new MyDBEntities()) 
{ 
    //LINQ query 
    var query = from emp in _entities.Employees //Employees is the collection of Employee 
       where emp.Age < 45 
       select emp; 

    //query object will be containing all the employees in the form of collection whose age is 
    // less than 45 
}