В объект с неопределенными полями написать значение этих полей - C#
Формулировка задачи:
Постарался все в коде описать!
static class WorkWithDB<T> where T : class, ID//интерфейс ID реализует одно авт. свойсто int id { private static string cnStr = ConfigurationManager.ConnectionStrings["cnStr"].ConnectionString;//строка подключения public static List<T> SelectAll()// функция котороая должна из бд вытащить мне из БД (MS-SQL 2012) с помощью хранимой процедуры все записи { List<T> list = new List<T>();//лист такого же типа Type t= typeof(T); using (SqlConnection cn = new SqlConnection(cnStr))//строка подключения к БД { SqlCommand cmd = new SqlCommand("SelectAll"+t.Name, cn); //название ХП и объект к кот применяется cmd.CommandType = CommandType.StoredProcedure; //уточняем, что это ХП cn.Open(); //открываем соединение IDataReader reader = cmd.ExecuteReader(); //созд. объект для чтения из БД while (reader.Read())// цыкл в котором поочередно вычитывает то что вернула Хранимая Процедура { T obj = (Activator.CreateInstance(t) as T);//тут я создаю объект типа T, хочу положить его в лит. Положить то положил obj.//а вот тут инициировать его как? //вот пример рабочего кода // while (reader.Read()) //{ // list.Add(new Customer { Id=Convert.ToInt32(reader["Id"]), // Name=reader["NAME"].ToString(), // Age = Convert.ToInt32(reader["Age"]) // }); //} //как толкать значения в поля obj если они еще не определены? list.Add(obj); } cn.Close(); } return list; } } }
Это вообще возможно?
Решение задачи: «В объект с неопределенными полями написать значение этих полей»
textual
Листинг программы
public int Load<T>(ICollection<T> dtoList, string condition = null, string table = null) where T : new() { var properties = typeof(T).GetProperties(); var comm = new SqlCommand(BuildSelectQuery(typeof(T), null, condition, table)); var count = 0; foreach (var reader in ExecuteReader(comm)) { var dto = new T(); foreach (var pi in properties) { var v = reader[pi.Name] != DBNull.Value ? reader[pi.Name] : null; pi.SetValue(dto, v, null); } dtoList.Add(dto); count++; } return count; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д