Проверить, существует ли DataRow по имени столбца в C#?
Я хочу сделать что-то вроде этого:
private User PopulateUsersList(DataRow row)
{
Users user = new Users();
user.Id = int.Parse(row["US_ID"].ToString());
if (row["US_OTHERFRIEND"] != null)
{
user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
return user;
}
Однако я получаю сообщение об ошибке US_OTHERFRIEND
не принадлежит таблице. Я хочу просто проверить, если это не ноль, а затем установить значение.
Разве нет способа сделать это?
5 ответов
Решение
Тебе стоит попробовать
if (row.Table.Columns.Contains("US_OTHERFRIEND"))
Я не верю, что у строки есть свойство столбцов.
if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
doSomethingUseful;
{
else { return; }
Хотя DataRow не имеет свойства Columns, у него есть таблица, для которой можно проверить столбец.
Вы можете использовать DataColumnCollection вашей таблицы данных, чтобы проверить, находится ли столбец в коллекции.
Что-то вроде:
DataColumnCollection Columns = dtItems.Columns;
if (Columns.Contains(ColNameToCheck))
{
row["ColNameToCheck"] = "Checked";
}
Ты можешь использовать
try {
user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
catch (Exception ex)
{
// do something if you want
}