Как извлечь данные из таблицы данных в базе данных сервера sql, зная, что таблица может иметь разные имена столбцов / количество столбцов в зависимости от запроса?
Я бы обычно использовал SqlDataAdapter, а затем делал бы: da.Fill(dt)
, но это не вариант, так как я не могу перечислить через dataTable в виде бритвы. Я sh воспроизведу эту таблицу в виде, используя Razor Pages.
Вот пример того, что я обычно могу сделать, но это требует точного знания, какими будут имена столбцов и сколько их будет , Что можно вставить в while
, чтобы вернуть все данные таблицы в типе, который можно перечислить?:
SqlConnection connectionCalc = new SqlConnection("<connectionString>");
if (connectionCalc.State.Equals(ConnectionState.Closed))
connectionCalc.Open();
using (var command = connectionCalc.CreateCommand())
{
command.CommandText = $@"SELECT * FROM {tableName}";
SqlDataReader reader = command.ExecuteReader();
column = new Dictionary<string, string>();
int userUidSingle = -999;
while (reader.Read())
{
CalcScheduleUid.Add(reader[SelectedCalculation + "_CALC_SCHEDULE_UID"].ToString());
UserUid.Add(Convert.ToInt32(reader["USER_UID"]));
ScheduledDate.Add(Convert.ToDateTime(reader["SCHEDULED_DATE"]));
CalcStatusUid.Add(reader[SelectedCalculation + "_CALC_STATUS_UID"].ToString());
StartDate.Add(Convert.ToDateTime(reader["CALCULATION_START_DATE"]));
EndDate.Add(Convert.ToDateTime(reader["CALCULATION_END_DATE"]));
Progress.Add(reader["PROGRESS"].ToString());
}