2

重複の可能性:
DataTableの列タイプを変換する方法は?

テーブルにすでに値がある場合、データテーブルの列タイプを変更するにはどうすればよいですか?

4

1 に答える 1

14

埋められた後にデータテーブルのデータ型を変更することはできませんが、これに関する多くの作業の1つは、データテーブルのクローンと型の変更です

最初の方法

//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);
}

二番目の道

それを行う他の方法はこのようなもので、最初にスキーマを埋めます - 列のデータ型を変更し、データブルを埋めます

adapter.FillSchema(table, SchemaType.Source);
table.Columns[0].DataType = typeof (Int32);
adapter.Fill(table);

第三の道

それを行うもう1つの方法は

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);
于 2013-01-11T13:09:17.430 に答える