2013-07-23 2 views
-1

в моем коде у меня есть функция, которая возвращает набор данных, но я не могу изменить его, так что я надеялся:Может ли набор данных содержать коллекцию других объектов?

  1. Может ли набор данных содержит другой набор данных?
  2. Или может сделать DataTable содержит набор данных Thats содержит таблицы данных
  3. Или я могу взять genericlist и преобразовать его к DataTable затем добавить его в набор данных?

Возможно ли это?

+0

Что вы узнали, когда вы пробовали? ;) –

+0

no-can not be done - единственный способ вставить json - задавался вопросом, есть ли у кого-то другая идея. –

+3

Возможно, если вы попытаетесь описать свою * актуальную * проблему и попытались решения, а не идею о том, как решить проблему, мы ничего не знаем, мы могли бы помочь. =) –

ответ

1

вот ответ на ваши вопросы

Datasets хранить данные в отключенном кэше. Структура набора данных аналогична структуре реляционной базы данных. он предоставляет иерархическую объектную модель таблиц, строк и столбцов. Кроме того, он содержит ограничения и отношения, определенные для набора данных. Вы используете набор данных, если хотите работать с набором таблиц и строк при отключении от источника данных.

  • Объект DataSet занимает центральное место в поддерживающий отсоединен
  • Объект DataSet является резидентным представлением данных
  • Объект DataSet представляет собой полный набор данных, в том числе связанных таблиц, ограничений и отношений между таблицами
  • набор данных ADO.NET содержит набор из нуля или более таблиц, представленного DataTable объектов

Вот 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

спасибо за помощь –