Лучший способ получить длинную ценность от объекта? - PullRequest
1 голос
/ 05 марта 2012

Хотелось бы узнать лучший способ получить long из возвращенного значения BIGINT с MSSQL-сервера через BLToolkit что будет лучше?

long.Parse(db.Parameter("@rowCount").Value.ToString());

или

System.Convert.ToInt64(db.Parameter("@rowCount").Value);

Ответы [ 6 ]

1 голос
/ 05 марта 2012

Я думаю, что ниже хороший способ получить данные, как вы хотели:

long longValue = 0;
if(db.Parameter("@rowCount").Value!=null)
{
    long.TryParse(db.Parameter("@rowCount").Value.ToString(), out longValue);
    //longValue: contains the actual long data
}

Поскольку исключение очень дорого, и, согласно вышеприведенному коду, исключение обрабатывается.Так что это обеспечит лучший подход.

Спасибо

1 голос
/ 05 марта 2012

я бы разыграл вот так:

long lngVal = System.Convert.ToLong(db.Parameter("@rowCount").Value);

В этом случае я бы не приводил объект к String раньше, потому что для этого нет причин.

0 голосов
/ 05 марта 2012
int nRowCnt = db.GetOrdinals("@rowCount");
db.GetInt64(nRowCnt);
0 голосов
/ 05 марта 2012

в одну сторону набрать его из строки

((long)(db.Parameter("@rowCount").Value.ToString()))
0 голосов
/ 05 марта 2012

используйте (long)db.Parameter("@rowCount").Value или (long?)db.Parameter("@rowCount").Value, если ваше значение может быть нулевым.

0 голосов
/ 05 марта 2012

Вторая форма лучше, так как она остается длинной.Преобразование в / из строки может потенциально потерять точность из-за двоичных <-> десятичных преобразований.

...