Лучшие практики DataReader

Что-то еще для взгляда на является свойством securerandom.source в файле lib/security/java.security

может быть выигрыш в производительности к использованию/dev/urandom, а не/dev/random. Помните, что, если качество случайных чисел важно, не идите на компромисс который безопасность повреждений.

9
задан Community 23 May 2017 в 10:29
поделиться

2 ответа

Вот как я это делаю:

Int32 ordinal = dataReader.GetOrdinal("ColumnName");

if (!dataReader.IsDBNull(ordinal))
    yourString = dataReader.GetString(ordinal);

Важно проверить DBNull , как я показал выше, потому что если поле в DataReader вызовет исключение, когда вы попытаетесь его получить.

11
ответ дан 4 December 2019 в 10:32
поделиться

Я создал несколько методов расширения, позволяющих мне обрабатывать IDataReader как перечислимый, а также иметь дело с DbNull , возвращая целые числа, допускающие значение NULL, и т. Д. позволяет мне проверить наличие null и применить значение по умолчанию с помощью оператора C # ?? .

/// <summary>
/// Returns an IEnumerable view of the data reader.
/// WARNING: Does not support readers with multiple result sets.
/// The reader will be closed after the first result set is read.
/// </summary>
public static IEnumerable<IDataRecord> AsEnumerable(this IDataReader reader)
{
    if (reader == null)
        throw new ArgumentNullException("reader");

    using (reader)
    {
        while (reader.Read())
        {
            yield return reader;
        }
    }
}

public static int? GetNullableInt32(this IDataRecord dr, string fieldName)
{
    return GetNullableInt32(dr, dr.GetOrdinal(fieldName));
}

public static int? GetNullableInt32(this IDataRecord dr, int ordinal)
{
    return dr.IsDBNull(ordinal) ? null : (int?)dr.GetInt32(ordinal);
}

... и так далее для других методов GetDataType () в IDataReader .

9
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: