Saya memiliki data yang dihasilkan dengan konten file csv. Saya menggunakan informasi lain untuk memetakan beberapa kolom csv (sekarang dalam datatable) ke informasi yang harus diisi oleh pengguna.
Di dunia terbaik, pemetaan akan selalu memungkinkan. Tapi ini bukan kenyataan ... Jadi sebelum saya mencoba memetakan nilai kolom yang dapat didata, saya perlu memeriksa apakah kolom itu ada. Jika saya tidak melakukan pemeriksaan ini, saya memiliki ArgumentException.
Tentu saja saya bisa mengeceknya dengan beberapa kode seperti ini:
try
{
//try to map here.
}
catch (ArgumentException)
{ }
tetapi saya sekarang memiliki 3 kolom untuk dipetakan dan beberapa atau semua mungkin ada / hilang
Apakah ada cara yang baik untuk memeriksa apakah ada kolom di datatable?
DataSet
/DataTable
? Jika demikian, Anda dapat melihat koleksi Kolom tabel untuk daftar semua kolom dalam tabel.Jawaban:
Anda bisa menggunakan
operator Contains
,private void ContainColumn(string columnName, DataTable table) { DataColumnCollection columns = table.Columns; if (columns.Contains(columnName)) { .... } }
MSDN - DataColumnCollection.Contains ()
sumber
myDataTable.Columns.Contains("col_name")
sumber
Untuk beberapa kolom Anda dapat menggunakan kode yang mirip dengan yang diberikan di bawah ini. Saya baru saja membahas ini dan menemukan jawaban untuk memeriksa beberapa kolom di Datatable.
private bool IsAllColumnExist(DataTable tableNameToCheck, List<string> columnsNames) { bool iscolumnExist = true; try { if (null != tableNameToCheck && tableNameToCheck.Columns != null) { foreach (string columnName in columnsNames) { if (!tableNameToCheck.Columns.Contains(columnName)) { iscolumnExist = false; break; } } } else { iscolumnExist = false; } } catch (Exception ex) { } return iscolumnExist; }
sumber
Anda dapat melihat
Columns
properti yang diberikanDataTable
, itu adalah daftar semua kolom dalam tabel.private void PrintValues(DataTable table) { foreach(DataRow row in table.Rows) { foreach(DataColumn column in table.Columns) { Console.WriteLine(row[column]); } } }
http://msdn.microsoft.com/en-us/library/system.data.datatable.columns.aspx
sumber
DataColumnCollection col = datatable.Columns; if (!columns.Contains("ColumnName1")) { //Column1 Not Exists } if (columns.Contains("ColumnName2")) { //Column2 Exists }
sumber