where T : new()

例:

        /// <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;

            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值