Columns.Add()vs new DataColumn()

时间:2014-06-22 11:27:37

标签: c# datatable ado.net

我对如何在表格上插入新列感到困惑,以及Columns.Add()new DataColumn()之间的区别是什么?

DataTable student = new DataTable("Students");
student.Columns.Add("ID", typeof(int));


DataColumn id = new DataColumn("ID");
id.DataType = typeof(int);
student.Columns.Add(id);

1 个答案:

答案 0 :(得分:2)

DataColumnCollection.Add只是创建列并添加它的捷径。正如MSDN所说:

  

创建并添加具有指定名称和的DataColumn对象   输入到DataColumnCollection。

这就是它的实施方式:

public DataColumn Add(string columnName, Type type)
{
    DataColumn column = new DataColumn(columnName, type);
    this.Add(column);
    return column;
}

正如您所看到的,在内部它会创建DataColumn的新实例并将其添加到自身。

注意:您可以使用接受列数据类型的DataColumn构造函数作为第二个参数。因此,您的第二个样本可能如下所示:

student.Columns.Add(new DataColumn("ID", typeof(int)));

但无论如何,我认为首先'捷径'选项更具可读性和紧凑性。如果您已经有一些列,或者如果您有从DataColumn继承的自定义类型列,则可能需要使用后一种方法。