c# - valor - validar si un registro existe en la base de datos
cómo verificar si una columna existe en una tabla de datos (4)
Tengo un datable generado con el contenido de un archivo csv. Uso otra información para mapear alguna columna del csv (ahora en la tabla de datos) a la información que el usuario debe completar.
En el mejor mundo, el mapeo sería siempre posible. Pero esto no es realidad ... Entonces, antes de intentar mapear el valor de la columna datatable, necesitaría verificar si esa columna existe. Si no hago este control, tengo una ArgumentException.
Por supuesto que puedo verificar esto con un código como este:
try
{
//try to map here.
}
catch (ArgumentException)
{ }
pero por ahora tengo 3 columnas para mapear y algunas o todas podrían estar existentes / faltantes
¿Hay una buena manera de verificar si existe una columna en una tabla de datos?
En el caso de columnas múltiples, puede usar un código similar al que figura a continuación. Estaba repasando esto y encontré la respuesta para verificar varias columnas en 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;
}
Puede usar operator Contains
,
private void ContainColumn(string columnName, DataTable table)
{
DataColumnCollection columns = table.Columns;
if (columns.Contains(columnName))
{
....
}
}
Puede ver la propiedad Columns
de una DataTable
determinada, es una lista de todas las columnas de la tabla.
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
myDataTable.Columns.Contains("col_name")