2013-08-01 3 views
-1

Я сделал Sorted List, где я использую его для вставки данных с помощью stored procedure. Могу ли я использовать тот же способ для заполнения DataTable, а затем показывать эти данные в текстовых полях на странице загрузки и как это можно сделать ???Как заполнить datatable из SortedList?

Я использую n-шину.

я сделать некоторые вещи, как это в inseret

как я могу сделать выбор из базы данных для отображения данных в текстовых полях, используя тот же способ

ответ

1

вы можете использовать этот метод расширения для преобразования списка Dattable

public static DataTable ToDataTable<T>(this IList<T> list) 
    { 
     Type elementType = typeof(T); 

     DataTable t = new DataTable(); 


     //add a column to table for each public property on T 
     foreach (var propInfo in elementType.GetProperties()) 
     { 
      Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType; 

      t.Columns.Add(propInfo.Name, ColType); 
     } 

     //go through each property on T and add each value to the table 
     foreach (T item in list) 
     { 
      DataRow row = t.NewRow(); 

      foreach (var propInfo in elementType.GetProperties()) 
      { 
       row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value; 
      } 

      t.Rows.Add(row); 
     } 

     return t; 
    } 

Использование:

DataTable dt = yourlist.ToDataTable(); 
+0

Я использую n шину, когда я вызываю хранимую процедуру, а затем она проверяет соединение, если все в порядке, оно должно срабатывать, чтобы заполнить нужный список из отсортированного списка, а затем использовать их на любой странице, как это можно сделать – ost3z

+0

Как я уже упоминал, это метод расширения. Добавьте его в статический класс, и он должен быть доступен, как этот DataTable dt = yourlist.ToDataTable(). – Ehsan

+0

вы имеете в виду я сделать
общественного переопределение BOOL LoadProperties2List (строка TypeOfOperation) { SortedList Sl = новый SortedList(); Sl.Add ("@ CommandType", TypeOfOperation); Sl.Add ("@ UserName", UserName); Sl.Add ("@ SecondarySchool", SecondarySchool); Sl.Add («Университет», Университет); Sl.Add («Квалификация», квалификация); ProcedureName = "MangeUserInfo"; if (db.RunProcedure (ProcedureName, Sl) == 1) DataTable dt = Sl.ToDataTable(); return true; else return false; } – ost3z

Смежные вопросы