2013-07-23 95 views
-1

在我的代碼我有一個返回數據集功能,但我不能改變它,所以我希望:數據集可以包含其他對象的集合嗎?

  1. 一個DataSet可以包含其他數據集?
  2. 或者數據表是否可以包含一個包含數據表的數據集
  3. 或者我可以將通用列表轉換爲數據表,然後將其添加到數據集中?

這是否可能?

+0

你是怎麼發現當你試過嗎? ;) –

+0

no - 不能做 - 唯一的方法是插入json - 想知道是否有人有另一個想法 –

+3

也許如果你試圖描述你的*實際*問題和嘗試解決方案,而不是如何解決問題的想法,我們一無所知,我們可以幫忙。 =) –

回答

1

這裏回答你的問題

在斷開連接的緩存數據集存儲數據。數據集的結構與關係數據庫的結構相似。它公開了表,行和列的分層對象模型。另外,它包含爲數據集定義的約束和關係。 如果要在與數據源斷開連接時使用一組表和行,則可以使用數據集。

  • DataSet對象是中央支持斷開連接
  • DataSet是數據
  • 數據集表示一個完整的數據集,包括表之間的關聯表,約束,和關係的存儲器駐留表示
  • ADO.NET數據集包含由數據表所表示的零個或更多個表對象的集合

這裏是MSDN Link更多信息

希望這將有助於

+1

你好@ J.Steen ..我已經更新了我的答案。感謝您的信息。 – Microtechie

+0

非常感謝您的幫助 –

1

1)沒有,在一個數據集,你只能把桌子和關係,你不能把其他數據集內

2)無,Datatable可以包含一些具有特定類型的列,但不是一個好的使用方法。

3)您可以使用此:

public static class Extensions 
    { 
      public static DataTable ToDataTable<T>(this IList<T> data) 
      { 
       PropertyDescriptorCollection propriedades = TypeDescriptor.GetProperties(typeof(T)); 
       DataTable dtTabela = new DataTable(); 
       for (int i = 0; i < propriedades.Count; i++) 
       { 
        PropertyDescriptor prop = propriedades[i]; 
        dtTabela.Columns.Add(prop.Name, prop.PropertyType); 
       } 
       object[] objValores = new object[propriedades.Count]; 
       foreach (T item in data) 
       { 
        for (int i = 0; i < objValores.Length; i++) 
       { 
       objValores[i] = propriedades[i].GetValue(item); 
      } 
      dtTabela.Rows.Add(objValores); 
     } 
     return dtTabela; 
    } 
+0

非常感謝您的幫助 –

相關問題