我有: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”。我该如何实现这一目标?
3 回答
动漫人物
TA贡献1815条经验 获得超10个赞
在数据填充数据后,您无法更改DataType。但是,您可以克隆Data表,更改列类型并将数据从先前的数据表加载到克隆表,如下所示。
DataTable dtCloned = dt.Clone();
dtCloned.Columns[0].DataType = typeof(Int32);
foreach (DataRow row in dt.Rows)
{
dtCloned.ImportRow(row);
}
慕标5832272
TA贡献1966条经验 获得超4个赞
虽然在DataTable填充后您无法更改列的类型FillSchema,但您可以在通话后但在通话之前更改它Fill。例如,假设第三列是你想从转换的一个double来Int32,你可以使用:
adapter.FillSchema(table, SchemaType.Source);
table.Columns[2].DataType = typeof (Int32);
adapter.Fill(table);
- 3 回答
- 0 关注
- 2285 浏览
添加回答
举报
0/150
提交
取消