Menambahkan Kolom ke DataTable

DataTable berisi kumpulan objek DataColumn yang dirujuk oleh properti Columns tabel. Kumpulan kolom ini, bersama dengan batasan apa pun, menentukan skema, atau struktur tabel.

Anda membuat DataColumn objek dalam tabel dengan menggunakan DataColumn konstruktor, atau dengan memanggil Add metode pada properti Columns dari tabel, yang merupakan DataColumnCollection. Metode Add menerima argumen opsional ColumnName, DataType, dan Expression dan membuat DataColumn baru sebagai anggota koleksi. Ini juga menerima objek yang ada DataColumn dan menambahkannya ke koleksi, dan mengembalikan referensi ke yang ditambahkan DataColumn jika diminta. Karena DataTable objek tidak spesifik untuk sumber data apa pun, jenis .NET Framework digunakan saat menentukan jenis data DataColumn.

Contoh berikut menambahkan empat kolom ke DataTable.

Dim workTable As DataTable = New DataTable("Customers")

Dim workCol As DataColumn = workTable.Columns.Add( _
    "CustID", Type.GetType("System.Int32"))
workCol.AllowDBNull = false
workCol.Unique = true

workTable.Columns.Add("CustLName", Type.GetType("System.String"))
workTable.Columns.Add("CustFName", Type.GetType("System.String"))
workTable.Columns.Add("Purchases", Type.GetType("System.Double"))
DataTable workTable = new DataTable("Customers");

DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32));
workCol.AllowDBNull = false;
workCol.Unique = true;

workTable.Columns.Add("CustLName", typeof(String));
workTable.Columns.Add("CustFName", typeof(String));
workTable.Columns.Add("Purchases", typeof(Double));

Dalam contoh ini, perhatikan bahwa properti kolom CustID diatur agar tidak mengizinkan nilai DBNull dan membatasi nilai agar menjadi unik. Namun, jika Anda menentukan CustID kolom sebagai kolom kunci utama tabel, AllowDBNull properti akan secara otomatis diatur ke false dan Unique properti akan secara otomatis diatur ke true. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.

Perhatian

Jika nama kolom tidak disediakan untuk kolom, kolom diberi nama default tambahan KolomN, dimulai dengan "Column1", saat ditambahkan ke DataColumnCollection. Kami menyarankan agar Anda menghindari konvensi penamaan "KolomN" saat Anda memberikan nama kolom, karena nama yang Anda berikan mungkin bertentangan dengan nama kolom default yang ada di DataColumnCollection. Jika nama yang diberikan sudah ada, pengecualian akan dihasilkan.

Jika Anda menggunakan XElement sebagai DataType dari DataColumn dalam DataTable, serialisasi XML tidak akan berfungsi saat Anda membaca dalam data. Misalnya, jika Anda menulis XmlDocument dengan menggunakan metode DataTable.WriteXml, setelah serialisasi ke XML, ada simpul induk tambahan di XElement. Untuk mengatasi masalah ini, gunakan tipe SqlXml daripada XElement. ReadXml dan WriteXml bekerja dengan benar dengan SqlXml.

Lihat juga