Проверьте, существует ли DataRow по имени столбца в С#?[дубликат]
Вопрос
На этот вопрос уже есть ответ здесь:
Я хочу сделать что-то вроде этого:
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
не принадлежит таблице.Я хочу просто проверить, не равно ли оно нулю, а затем установить значение.
Нет ли способа сделать это?
Решение
Тебе стоит попробовать
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
}
if (row.Columns.Contains("US_OTHERFRIEND"))
Не связан с StackOverflow