как проверить, существует ли столбец в datatable
У меня есть datable, сгенерированный с содержимым csv-файла. Я использую другую информацию для сопоставления некоторого столбца csv (теперь в datatable) с информацией, которую пользователь должен заполнить.
в лучшем мире отображение было бы всегда возможно. Но это не реальность... Поэтому, прежде чем я попытаюсь сопоставить значение столбца datatable, мне нужно будет проверить, существует ли этот столбец. Если я не делаю эту проверку у меня есть ArgumentException.
конечно, я могу проверить это с некоторым код такой :
try
{
//try to map here.
}
catch (ArgumentException)
{ }
но сейчас у меня есть 3 столбца для отображения, и некоторые или все могут существовать / отсутствовать
есть ли хороший способ проверить, существует ли столбец в datatable?
4 ответов:
можно использовать
operator Contains,private void ContainColumn(string columnName, DataTable table) { DataColumnCollection columns = table.Columns; if (columns.Contains(columnName)) { .... } }
для нескольких столбцов можно использовать код, аналогичный приведенному ниже.Я просто проходил через это и нашел ответ, чтобы проверить несколько столбцов в 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; }
вы можете посмотреть на
Columnsсвойства данногоDataTable, это список всех столбцов в таблице.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
Comments