如何使用C#将数据类型动态更改为ASP.NET中的动态数据表? [英] How to change datatype dynamically to a dynamic data table in ASP.NET with C#?
本文介绍了如何使用C#将数据类型动态更改为ASP.NET中的动态数据表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在动态创建数据表。我正在添加从数据库中获取的数据类型和列名称。在动态创建数据表的同时从DB以外的DB中获取Int32 / double数据类型时,我遇到问题无法更改列的数据类型
核心代码部分
I am creating a datatable dynamically. I am adding the datatype and column name fetched from Database. I am getting issue "cannot change datatype of column once a column has data" on fetching Int32 /double datatype from DB other than String while creating a data table dynamically
Core Code part
dtTemp1.Columns.Add(new DataColumn("Column" + i));
dtRep001.Columns[i].DataType = System.Type.GetType("System." + dsStdRep001SchemaDetails.Tables[0].Rows[i]["ColumnType"].ToString())
我尝试过:
What I have tried:
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)
{
}
推荐答案
从数据库中提取时,首先尝试将所有数据CAST为单个数据类型。
示例:
Try CAST all your data to a single datatype first when extracting from database.
Example:
select cast(columnName as int) columnName from table
参考:< a href =http://stackoverflow.com/questions/9028029/how-to-change-datatype-of-a-datacolumn-in-a-datatable> c# - 如何更改DataTable中DataColumn的DataType? - 堆栈溢出 [ ^ ]
这篇关于如何使用C#将数据类型动态更改为ASP.NET中的动态数据表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文