在 DataTable 中更改 DataColumn 数据类型
在使用 DataTable 中的数据时,您可能会遇到需要修改特定列的数据类型以适应不同数据格式的情况。
考虑以下情况:DataTable 从 SQL 表中填充数据,最初定义为“Double”数据类型的第一列需要转换为“Int32”。
代码片段:
<code class="language-csharp">DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection(...)) { using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM " + tableName, conn)) { adapter.FillSchema(dt, SchemaType.Source); adapter.Fill(dt); } }</code>
解决方案:
默认情况下,DataTable 不允许在用数据填充列后修改其数据类型。但是,有一种变通方法可以克隆 DataTable 并修改列的数据类型。然后,可以使用原始表中的数据重新填充修改后的列。
代码片段:
<code class="language-csharp">// 创建一个具有所需列数据类型的克隆 DataTable DataTable dtCloned = dt.Clone(); dtCloned.Columns[0].DataType = typeof(Int32); // 使用原始表中的数据填充克隆表 foreach (DataRow row in dt.Rows) { dtCloned.ImportRow(row); }</code>
通过这种方法,即使在用数据填充 DataTable 后,您也可以有效地更改列的数据类型。
以上是填充数据后如何更改数据表列的数据类型?的详细内容。更多信息请关注PHP中文网其他相关文章!