私は、BLToolkit 経由でMSSQLサーバーから返されたBIGINT値から長い時間を取得する最良の方法を知りたいですか?オブジェクトから長い価値を得る最も良い方法は?
long.Parse(db.Parameter("@rowCount").Value.ToString());
または
System.Convert.ToInt64(db.Parameter("@rowCount").Value);
?
私は、BLToolkit 経由でMSSQLサーバーから返されたBIGINT値から長い時間を取得する最良の方法を知りたいですか?オブジェクトから長い価値を得る最も良い方法は?
long.Parse(db.Parameter("@rowCount").Value.ToString());
または
System.Convert.ToInt64(db.Parameter("@rowCount").Value);
?
第2の形式は、のように良好です。は長くなります。文字列との変換は、バイナリ< - > 10進変換のため、精度が低下する可能性があります。
使用(long)db.Parameter("@rowCount").Value
または(long?)db.Parameter("@rowCount").Value
値がnullの場合は、何がありますので、私は、前にオブジェクトを文字列にキャストしないではないでしょう。この場合
long lngVal = System.Convert.ToLong(db.Parameter("@rowCount").Value);
:
Valueがnullの場合、このprefix-castは使用しないでください。パフォーマンスのために、値がnullになる可能性がある場合は、キャスト時の使用を優先します。 – Benni
一つの方法は、私はこのようにキャストするストリング
((long)(db.Parameter("@rowCount").Value.ToString()))
から長いそれをキャストタイプでありますそれの理由。
int nRowCnt = db.GetOrdinals("@rowCount");
db.GetInt64(nRowCnt);
私は以下のだと思うが、あなたが望んでいたように、データを取得するための良い方法です:
long longValue = 0;
if(db.Parameter("@rowCount").Value!=null)
{
long.TryParse(db.Parameter("@rowCount").Value.ToString(), out longValue);
//longValue: contains the actual long data
}
例外は非常に高価であり、上記のコードの例外に応じて処理されますので。だから、より良いアプローチを提供します。
ありがとうございました
これは速く動作しますか? – Alexei