Если Вы не используете nullable типы, лучшая вещь сделать проверить, чтобы видеть, является ли значение столбца DBNull. Если это - DBNull, то установленный Ваша ссылка на то, что Вы используете для пустого/пустого для соответствующего типа данных.
DataRow row = ds.Tables[0].Rows[0];
string value;
if (row["fooColumn"] == DBNull.Value)
{
value = string.Empty;
}
else
{
value = Convert.ToString(row["fooColumn"]);
}
, Поскольку Manu сказал, можно создать класс преобразования с перегруженным методом преобразования на тип, таким образом, Вы не должны перчить свой код если/еще блоки.
я однако подчеркну, что nullable типы являются лучшим маршрутом, чтобы пойти, если можно использовать их. Обоснование состоит в том, что с не допускающими NULL-значения типами, Вы оказываетесь перед необходимостью обращаться к "магическим числам" для представления пустого указателя. Например, при отображении столбца на международную переменную как Вы собираетесь представить DBNull? Часто Вы не можете использовать 0, потому что 0 имеет допустимое значение в большинстве программ. Часто я вижу, что люди отображают DBNull на интервал. MinValue, но это могло потенциально быть проблематично также. Мой лучший совет - это:
типы Nullable были сделаны решить эту проблему. Однако если Вы будете на более старой версии платформы или будете работать на кого-то, кто не делает grok nullable типов, пример кода добьется цели.
Да, возможно :
На одном компьютере можно установить несколько агентов. Они функционируют как отдельные агенты, и TeamCity работает с ними как с разными агентами, не используя тот факт, что они используют одну и ту же машину. После установки одного агента вы можете установить дополнительный, при соблюдении следующих условий:
Убедитесь, что нет конфигураций сборки, в которых указан абсолютный каталог извлечения (в качестве альтернативы, убедитесь, что в таких конфигурациях сборки включена опция «чистая проверка», и они не могут выполняться параллельно).
Под Windows, чтобы установить дополнительные агенты как службы, измените [каталог агента] \ launcher \ conf \ wrapper.conf для изменения свойств, чтобы они имели различное имя на компьютере: