如何更改DataTable中DataColumn的DataType?

我有:


DataTable Table = new DataTable;

SqlConnection = new System.Data.SqlClient.SqlConnection("Data Source=" + ServerName + ";Initial Catalog=" + DatabaseName + ";Integrated Security=SSPI; Connect Timeout=120");


SqlDataAdapter adapter = new SqlDataAdapter("Select * from " + TableName, Connection);

adapter.FillSchema(Table, SchemaType.Source);

adapter.Fill(Table);


DataColumn column = DataTable.Columns[0];

我想做的是:


假设当前column.DataType.Name是“Double”。我希望它成为“Int32”。


我该如何实现这一目标?


跃然一笑
浏览 2286回答 3
3回答

动漫人物

在数据填充数据后,您无法更改DataType。但是,您可以克隆Data表,更改列类型并将数据从先前的数据表加载到克隆表,如下所示。DataTable dtCloned = dt.Clone();dtCloned.Columns[0].DataType = typeof(Int32);foreach (DataRow row in dt.Rows) {    dtCloned.ImportRow(row);}

慕标5832272

虽然在DataTable填充后您无法更改列的类型FillSchema,但您可以在通话后但在通话之前更改它Fill。例如,假设第三列是你想从转换的一个double来Int32,你可以使用:adapter.FillSchema(table, SchemaType.Source);table.Columns[2].DataType = typeof (Int32);adapter.Fill(table);
打开App,查看更多内容
随时随地看视频慕课网APP