Beispiel #1
0
        /// <summary>
        /// Gets the database table data.
        /// </summary>
        /// <param name="basicTableColumns">The basic table columns.</param>
        /// <returns>
        /// A task which gets all the table data information.
        /// </returns>
        public virtual async Task <ConcurrentBag <TableColumnInformation> > GetDatabaseTableData(ConcurrentBag <TableColumnInformation> tableColumnInformation)
        {
            await Task.Run(() => Parallel.ForEach(tableColumnInformation, tableColumn =>
            {
                SqlConnection sqlConnection = _sqlServerConnection.GetConnection();

                string sqlToRun = $"SELECT { string.Join(",", tableColumn.ColumnNames) } FROM {tableColumn.TableName}";

                using (SqlCommand dbCommand = sqlConnection.CreateCommand())
                {
                    dbCommand.CommandText = sqlToRun;

                    SqlDataReader reader = dbCommand.ExecuteReader();

                    tableColumn.Data.Load(reader);

                    reader.Dispose();
                }

                _sqlServerConnection.DisposeConnection(sqlConnection);
            }));

            return(tableColumnInformation);
        }