例:
/// <summary>
/// 返回实体类的泛型列表
/// </summary>
/// <typeparam name="T">实体</typeparam>
/// <param name="SqlTxt">SQL语句</param>
/// <param name="paras">参数</param>
/// <returns></returns>
public virtual List<T> GetInfoListBySqlTxt<T>(string SqlTxt, SqlParameter[] paras) where T : new()
{
try
{
List<T> ts = new List<T>();
T t = new T();
Type type = t.GetType();
PropertyInfo[] pInfos = type.GetProperties();
using (SqlConnection Connection = new SqlConnection(getSqlStr))
{
Open(Connection);
using (SqlDataReader sdr = CreateSqlCommand(SqlTxt, paras, Connection).ExecuteReader(CommandBehavior.CloseConnection))
{
while (sdr.Read())
{
T data = new T();
for (int i = 0; i < sdr.FieldCount; i++)
{
string paraName = sdr.GetName(i);
foreach (PropertyInfo pInfo in pInfos)
{
if (string.Compare(pInfo.Name, paraName, true) == 0)
{
pInfo.SetValue(data, DBNull.Value == sdr[i] ? null : sdr[i], null);
break;
}
}
}
ts.Add(data);
}
}
}
return ts;
}
catch (Exception ex)
{
DebugMessage = ex.ToString();
if (IsDebugException)
throw new ArgumentNullException(DebugMessage);
return null;
}
}