Example #1
0
        public static List <dynamic> DataReaderToDynamic(System.Data.Common.DbDataReader reader, out double runTime)
        {
            var            time    = DateTime.Now;
            List <dynamic> list    = new List <dynamic>();
            var            columns = new List <string>();

            for (int i = 0; i < reader.FieldCount; i++)
            {
                columns.Add(reader.GetName(i));
            }
            try
            {
                #region while
                while (reader.Read())
                {
                    object[] values = new object[columns.Count];
                    reader.GetValues(values);
                    var d = getRow(columns, values);
                    list.Add(d);
                }
                #endregion
            }
            catch (Exception ero)
            {
                reader.Close();
                throw new CRLException("读取数据时发生错误:" + ero.Message);
            }
            reader.Close();
            runTime = (DateTime.Now - time).TotalMilliseconds;
            return(list);
        }
Example #2
0
        /// <summary>
        /// 返回匿名类型
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="reader"></param>
        /// <param name="resultSelector"></param>
        /// <param name="runTime"></param>
        /// <returns></returns>
        public static List <TResult> DataReaderToDynamic <T, TResult>(System.Data.Common.DbDataReader reader, Expression <Func <T, TResult> > resultSelector, out double runTime) where T : IModel, new()
        {
            var            time     = DateTime.Now;
            List <TResult> list     = new List <TResult>();
            var            typeArry = TypeCache.GetProperties(typeof(T), true).Values;
            var            columns  = new Dictionary <string, int>();

            for (int i = 0; i < reader.FieldCount; i++)
            {
                columns.Add(reader.GetName(i).ToLower(), i);
            }
            var reflection = ReflectionHelper.GetInfo <T>();
            var actions    = new List <CRL.ObjectConvert.ActionItem <T> >();
            var first      = true;

            //var objOrigin = new T();
            while (reader.Read())
            {
                object objInstance = reflection.CreateObjectInstance();

                object[] values = new object[columns.Count];
                reader.GetValues(values);
                var detailItem = ObjectConvert.DataReaderToObj <T>(columns, values, reflection, true, objInstance, typeArry, actions, first) as T;
                var result     = resultSelector.Compile()(detailItem);
                list.Add(result);
                first = false;
            }
            reader.Close();
            runTime = (DateTime.Now - time).TotalMilliseconds;
            return(list);
        }
Example #3
0
        static string AsSqlInsert(System.Data.Common.DbDataReader result, string tableName)
        {
            var sb = new System.Text.StringBuilder();
            sb.AppendFormat ("INSERT INTO {0} (",tableName);

            for (int i = 0; i < result.FieldCount; i++)
            {
                sb.Append('\t' + result.GetName(i) + ",\r\n");
            }
            sb.Length -= 3; // remove last comma
            sb.Append(") VALUES (\r\n\t");
            object[] vals = new object[result.FieldCount];
            result.GetValues(vals);
            sb.Append(string.Join(",\r\n\t", vals.Select(ValueToSqlString)));
            sb.Append(')');
            return sb.ToString();
        }
        private void AddReaderToGrid(BasePopupViewModel viewModel, System.Data.Common.DbDataReader dataReader)
        {
            DataTable dtSource = new DataTable();

            dtSource.TableName = "Data";

            for (int i = 0; i < dataReader.FieldCount; i++)
            {
                DataColumn col = new DataColumn(dataReader.GetName(i), dataReader.GetFieldType(i));
                dtSource.Columns.Add(col);
            }
            while (dataReader.Read())
            {
                object[] values = new object[dataReader.FieldCount];
                dataReader.GetValues(values);
                dtSource.LoadDataRow(values, false);
            }
            dataReader.Close();

            AddControlsToGrid(viewModel, dtSource, "");
        }
Example #5
0
        public static List <dynamic> DataReaderToDynamic(System.Data.Common.DbDataReader reader, out double runTime)
        {
            var            time    = DateTime.Now;
            List <dynamic> list    = new List <dynamic>();
            var            columns = new List <string>();

            for (int i = 0; i < reader.FieldCount; i++)
            {
                columns.Add(reader.GetName(i));
            }

            while (reader.Read())
            {
                object[] values = new object[columns.Count];
                reader.GetValues(values);
                var d = getDataRow(columns, values);
                list.Add(d);
            }
            reader.Close();
            runTime = (DateTime.Now - time).TotalMilliseconds;
            return(list);
        }