In my project, I have to retrieve a large amount of data from SQL and map the data to object fields; something like this:
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);
where DbUtil.RemoveNull
is following (int
version, the string
version is similar):
public static int RemoveNull(object data, int defaultValue)
{
if (data is DBNull || data == null)
return defaultValue;
return int.Parse(data.ToString());
}
So I wonder if SQL's COALESCE
or ISNULL
would do the same job faster. Did someone do similar comparison? Which way would be more efficient?