SoFunction
Updated on 2025-03-08

Methods of converting DataSet into entity collection class in C#

/// <summary>
/// Convert DataSet to entity class
/// </summary>
/// <typeparam name="T">Entity class</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">Data table index to be converted</param>
/// <returns>Entity Class</returns>
public static T DataSetToEntity<T>(DataSet p_DataSet, int p_TableIndex)
{
    if (p_DataSet == null || p_DataSet. < 0)
 return default(T);
    if (p_TableIndex > p_DataSet. - 1)
 return default(T);
    if (p_TableIndex < 0)
 p_TableIndex = 0;
    if (p_DataSet.Tables[p_TableIndex]. <= 0)
 return default(T);

    DataRow p_Data = p_DataSet.Tables[p_TableIndex].Rows[0];
// Return value initialization
    T _t = (T)(typeof(T));
    PropertyInfo[] propertys = _t.GetType().GetProperties();
    foreach (PropertyInfo pi in propertys)
    {
 if (p_DataSet.Tables[p_TableIndex].(()) != -1 && p_Data[()] != )
 {
     (_t, p_Data[()], null);
 }
 else
 {
     (_t, null, null);
 }
    }
    return _t;
}

/// <summary>
/// Convert DataSet to entity list
/// </summary>
/// <typeparam name="T">Entity class</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">Data table index to be converted</param>
/// <returns>Entity Class List</returns>
public static IList<T> DataSetToEntityList<T>(DataSet p_DataSet, int p_TableIndex)
{
    if (p_DataSet == null || p_DataSet. < 0)
 return default(IList<T>);
    if (p_TableIndex > p_DataSet. - 1)
 return default(IList<T>);
    if (p_TableIndex < 0)
 p_TableIndex = 0;
    if (p_DataSet.Tables[p_TableIndex]. <= 0)
 return default(IList<T>);

    DataTable p_Data = p_DataSet.Tables[p_TableIndex];
// Return value initialization
    IList<T> result = new List<T>();
    for (int j = 0; j < p_Data.; j++)
    {
 T _t = (T)(typeof(T));
 PropertyInfo[] propertys = _t.GetType().GetProperties();
 foreach (PropertyInfo pi in propertys)
 {
     if (p_Data.(()) != -1 && p_Data.Rows[j][()] != )
     {
  (_t, p_Data.Rows[j][()], null);
     }
     else
     {
  (_t, null, null);
     }
 }
 (_t);
    }
    return result;
}