Проверьте, существует ли DataRow по имени столбца в С#?[дубликат]

StackOverflow https://stackoverflow.com/questions/2563526

  •  23-09-2019
  •  | 
  •  

Вопрос

На этот вопрос уже есть ответ здесь:

Я хочу сделать что-то вроде этого:

   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"))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top