如何更改类型数据表列

Shi*_*ivi 1 c# datatable types

可能重复:
如何转换DataTable列类型?

如果表已经有值,我们如何更改数据表列类型?

Pra*_*ana 11

在填充之后更改数据表的数据类型是不可能的,但其中一项工作是克隆数据和更改类型

第一种方式

//clone datatable     
DataTable dtCloned = dt.Clone();
//change data type of column
dtCloned.Columns[0].DataType = typeof(Int32);
//import row to cloned datatable
foreach (DataRow row in dt.Rows) 
{
    dtCloned.ImportRow(row);
}
Run Code Online (Sandbox Code Playgroud)

第二种方式

和其他方法一样,首先填充模式 - 而不是更改列数据类型,而不是填充数据

adapter.FillSchema(table, SchemaType.Source);
table.Columns[0].DataType = typeof (Int32);
adapter.Fill(table);
Run Code Online (Sandbox Code Playgroud)

第三种方式

另一种方法是

System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Rows.Add(1);

System.Data.DataTable dt2 = new System.Data.DataTable();
dt2.Columns.Add("Col1", typeof(string));
dt2.Load(dt.CreateDataReader(), System.Data.LoadOption.OverwriteChanges);
Run Code Online (Sandbox Code Playgroud)