Menambahkan Kolom ke DataTable
DataTable berisi koleksi objek DataColumn yang direferensikan oleh properti Kolom tabel. Koleksi kolom ini, bersama dengan batasan apa pun mendefinisikan skema, atau struktur dari tabel.
Anda membuat objek DataColumn dalam tabel dengan menggunakan konstruktor DataColumn, atau dengan memanggil metode Penambahan dari properti Columns tabel, yang merupakan DataColumnCollection. Metode Penambahan menerima argumen ColumnName, DataType, dan Expression opsional dan membuat DataColumn baru sebagai anggota dari koleksi. Cara ini juga menerima objek DataColumn yang ada dan menambahkannya ke koleksi, dan mengembalikan referensi ke DataColumn yang ditambahkan jika diminta. Karena objek DataTable 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, perhatikan bahwa properti untuk kolom CustID diatur untuk tidak mengizinkan nilai DBNull dan membatasi nilai agar unik. Namun, jika Anda menetapkan kolom CustID sebagai kolom kunci utama tabel, properti AllowDBNull akan secara otomatis diatur menjadi false dan Unique Properti akan secara otomatis diatur menjadi true. Untuk informasi selengkapnya, lihat Menentukan Kunci Utama.
Perhatian
Jika nama kolom tidak diberikan untuk sebuah kolom, kolom tersebut diberi nama default tambahan dari KolomN, dimulai dengan "Column1", saat ditambahkan ke DataColumnCollection. Sebaiknya hindari 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 ditampilkan.
Jika Anda menggunakan XElement sebagai DataType dari DataColumn di 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 jenis SqlXml dan bukan XElement. ReadXml
dan WriteXml
bekerja dengan benar bersama SqlXml.