2009-05-08 81 views
0

是否有任何快速的方法來創建一個數據集中的表格,並用IQueryable中的模式填充它(數據不是來自EF或Linq2Sql)?我需要這個將網格綁定到我的數據。如何使用IQueryable中的數據填充數據集?

感謝, 羅伊

+0

你是如何得到IQuerable的? – Jeremy 2009-05-08 20:21:33

+0

我在解析「用模式填充它」時遇到問題。你的意思是說你的IQueryable中的對象的模式在設計時是未知的嗎?即您必須創建一個DataTable,其中包含從IQueryable中的對象類型運行時計算出的列,然後將數據從IQueryable加載到DataTable中? – 2009-05-08 20:58:22

回答

1

可以使用System.Data.Linq.DataContext類的翻譯功能設置爲「自動」一表映射到類。

有一個例子:

using System.Data.Linq; 
using System.Data.SqlClient; 



    string cnnStr = "YourConnectionString"; 
    DataContext dc = new DataContext(cnnStr); 
    SqlConnection sqlCnn = (SqlConnection) dc.Connection; 
    sqlCnn.Open(); 
    SqlCommand sqlCmd = new SqlCommand("select ID, Name, [Date] From test", sqlCnn); 
    SqlDataReader sqlDr = sqlCmd.ExecuteReader(); 
    var result = dc.Translate<clsRow>(sqlDr); 
    foreach(clsRow row in result) 
    { 
     Console.Write(row.ID); 
     Console.Write(row.Name); 
     Console.Write(row.Date); 
    } 

在這種情況下,你需要一個名爲Test 3列的表:ID,名稱和測試 ,也稱爲clsRow在.net中具有相同屬性的類名的表格列。

public class clsRow 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public DateTime Date { get; set; } 
}