在我的項目中,我必須從SQL中檢索大量數據並將數據映射到對象字段;是這樣的:SQL COALESCE與C中的DBNull檢查#
cu.UnitName = dr["UnitName"].ToString().Trim();
cu.LocalId = DbUtil.RemoveNull(dr["LocalID"], "");
cu.DatabaseName = DbUtil.RemoveNull(dr["DatabaseName"], "");
cu.DatabaseServer = DbUtil.RemoveNull(dr["DatabaseServer"], "");
cu.UserName = DbUtil.RemoveNull(dr["UserName"], "");
cu.Password = DbUtil.RemoveNull(dr["Password"], "");
cu.RoleId = DbUtil.RemoveNull(dr["RoleId"], 0);
其中DbUtil.RemoveNull
是以下(int
版本,該版本string
類似):
public static int RemoveNull(object data, int defaultValue)
{
if (data is DBNull || data == null)
return defaultValue;
return int.Parse(data.ToString());
}
所以我想如果SQL的COALESCE
或ISNULL
會做同樣的工作速度更快。有人做過類似的比較嗎?哪種方式更有效率?
爲什麼不自己做比較? – 2012-08-17 07:01:48
這種表現不會成爲一個問題。你應該採取任何看起來更容易維護的方法 – Lucero 2012-08-17 07:04:32
嘗試'ISNULL'。看到這裏的原因(它的速度更快):http://stackoverflow.com/questions/2287642/which-is-quicker-coalesce-or-isnull – 2012-08-17 07:28:23