Alex395 Ответов: 1

Как динамически изменить тип данных на динамическую таблицу данных в ASP.NET с C#?


Я создаю datatable динамически. Я добавляю тип данных и имя столбца, извлеченные из базы данных. Я получаю проблему "не могу изменить тип данных столбца, как только столбец содержит данные" при извлечении типа данных Int32 /double из БД, отличного от строки, при динамическом создании таблицы данных
Основная часть кода
dtTemp1.Columns.Add(new DataColumn("Column" + i));
dtRep001.Columns[i].DataType = System.Type.GetType("System." + dsStdRep001SchemaDetails.Tables[0].Rows[i]["ColumnType"].ToString())


Что я уже пробовал:

try
{
    for (int i = 0; i < dsStdRep001SchemaDetails.Tables[0].Rows.Count; i++)
    {
        System.Data.DataTable dtTemp1 = new System.Data.DataTable();
        dtTemp1.Columns.Add(new DataColumn("Column" + i));
        dtRep001.Columns[i].DataType = System.Type.GetType("System." + dsStdRep001SchemaDetails.Tables[0].Rows[i]["ColumnType"].ToString());
        dtRep001.Columns[i].ColumnName = dsStdRep001SchemaDetails.Tables[0].Rows[i]["ColumnName"].ToString();
        string ColumnId = dtRep001.Columns[i].ColumnName.ToString();
        words = Rep001Record.Split(',');
        if (words[0] != STR_RPT_END)
        {
            if (i == 0)
            {
              row = dtRep001.NewRow();
              dtRep001.Rows.Add(row);
            }
            // row[ColumnId] = words[i].Trim();
        }
    }
}
catch (Exception ex)
{
}

1 Ответов

Рейтинг:
0

kambingkoh

Попробуйте сначала привести все ваши данные к одному типу данных при извлечении из базы данных.

Пример:

select cast(columnName as int) columnName from table


Ссылка: c# - Как изменить тип данных столбца DataColumn в DataTable? - переполнение стека[^]