В объект с неопределенными полями написать значение этих полей - 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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы