Лучший способ получить длинную ценность от объекта?
Я хотел бы знать, как лучше получить long из возвращенного значения BIGINT с сервера MSSQL через BLToolkit, что будет лучше?
long.Parse(db.Parameter("@rowCount").Value.ToString());
или же
System.Convert.ToInt64(db.Parameter("@rowCount").Value);
?
6 ответов
Я бы бросил так:
long lngVal = System.Convert.ToLong(db.Parameter("@rowCount").Value);
В этом случае я бы не приводил объект к String раньше, потому что для этого нет причин.
Я думаю, что ниже хороший способ получить данные, как вы хотели:
long longValue = 0;
if(db.Parameter("@rowCount").Value!=null)
{
long.TryParse(db.Parameter("@rowCount").Value.ToString(), out longValue);
//longValue: contains the actual long data
}
Поскольку исключение является очень дорогостоящим и в соответствии с приведенным выше кодом исключение обрабатывается. Так что это обеспечит лучший подход.
Спасибо
Вторая форма лучше, так как она остается длинной. Преобразование в / из строки может потенциально потерять точность из-за двоичных<->десятичных преобразований.
Одним из способов является тип приведи его из строки
((long)(db.Parameter("@rowCount").Value.ToString()))
int nRowCnt = db.GetOrdinals("@rowCount");
db.GetInt64(nRowCnt);
Использование (long)db.Parameter("@rowCount").Value
или же (long?)db.Parameter("@rowCount").Value
если ваше значение может быть нулевым.