Являются ли методы .net SqlDataReader культурой инвариантными

function formatDate(seconds, dictionary) {
    var foo = new Date;
    var unixtime_ms = foo.getTime();
    var unixtime = parseInt(unixtime_ms / 1000);
    var diff = unixtime - seconds;
    var display_date;
    if (diff <= 0) {
        display_date = dictionary.now;
    } else if (diff < 60) {
        if (diff == 1) {
            display_date = diff + ' ' + dictionary.second;
        } else {
            display_date = diff + ' ' + dictionary.seconds;
        }
    } else if (diff < 3540) {
        diff = Math.round(diff / 60);
        if (diff == 1) {
            display_date = diff + ' ' + dictionary.minute;
        } else {
            display_date = diff + ' ' + dictionary.minutes;
        }
    } else if (diff < 82800) {
        diff = Math.round(diff / 3600);
        if (diff == 1) {
            display_date = diff + ' ' + dictionary.hour;
        } else {
            display_date = diff + ' ' + dictionary.hours;
        }
    } else {
        diff = Math.round(diff / 86400);
        if (diff == 1) {
            display_date = diff + ' ' + dictionary.day;
        } else {
            display_date = diff + ' ' + dictionary.days;
        }
    }
    return display_date;
}
0
задан user1246576 13 July 2018 в 11:31
поделиться

1 ответ

Являются ли методы .net SqlDataReader культуральными инвариантами

SqlDataReader не используют никаких CultureInfo или что-то эквивалентное. Он не знает культур.

Когда ваши значения хранятся в db как десятичные, SqlDataReader получает это десятичное значение. Как они (string-), представленные в вашем приложении, зависят от того, как вы это делаете: просто с помощью dataReader["myColumn"].ToString() будет использоваться ваш текущий CultureInfo. Если вы хотите другую культуру, вы должны явно указать это.

Что произойдет, если они сохранены в varchar и попытаются использовать .GetDecimal ()?

Когда они хранятся как строки, у вас есть проблема (по крайней мере, если вы не знаете культуру, с которой были созданы эти строки). Вы должны использовать правильные CultureInfo для первого parse эти строки, чтобы получить правильные значения. Но почему бы вам хранить номера как строки в вашем db?

3
ответ дан René Vogt 17 August 2018 в 13:03
поделиться
Другие вопросы по тегам:

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