Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (row["value"] != DBNull.Value)
- {
- someObject.Member = row["value"];
- }
- row["value"] == DBNull.Value; // Or
- row["value"] is DBNull; // Or
- row["value"].GetType() == typeof(DBNull) // Or... any suggestions?
- object valueHolder;
- if (DBNull.Value == (valueHolder = row["value"])) {}
- row["value"] == DBNull.Value: 00:00:01.5478995
- row["value"] is DBNull: 00:00:01.6306578
- row["value"].GetType() == typeof(DBNull): 00:00:02.0138757
- row["Value"] == DBNull.Value: 00:00:12.2792374
- No Caching: 00:00:03.0996622
- With Caching: 00:00:01.5659920
- object temp;
- string variable;
- if (DBNull.Value != (temp = row["value"])
- {
- variable = temp.ToString();
- }
- object value = row["value"];
- int columnIndex = row.GetOrdinal("Foo");
- string foo; // the variable we're assigning based on the column value.
- if (row.IsDBNull(columnIndex)) {
- foo = String.Empty; // or whatever
- } else {
- foo = row.GetString(columnIndex);
- }
- int i; // can be reused for every field.
- string foo = (row.IsDBNull(i = row.GetOrdinal("Foo")) ? null : row.GetString(i));
- int bar = (row.IsDbNull(i = row.GetOrdinal("Bar")) ? -1 : row.GetInt32(i));
- oSomeObject.IntMemeber = oRow["Value"] as int? ?? iDefault;
- oSomeObject.StringMember = oRow["Name"] as string ?? sDefault;
- public static T? GetValue<T>(this DataRow row, string columnName) where T : struct
- {
- if (row.IsNull(columnName))
- return null;
- return row[columnName] as T?;
- }
- public static string GetText(this DataRow row, string columnName)
- {
- if (row.IsNull(columnName))
- return string.Empty;
- return row[columnName] as string ?? string.Empty;
- }
- int? id = row.GetValue<int>("Id");
- string name = row.GetText("Name");
- double? price = row.GetValue<double>("Price");
- oSomeObject.IntMember = If(TryConvert(Of Integer)(oRow("Value")), iDefault)
- oSomeObject.StringMember = If(TryCast(oRow("Name"), String), sDefault)
- Function TryConvert(Of T As Structure)(ByVal obj As Object) As T?
- If TypeOf obj Is T Then
- Return New T?(DirectCast(obj, T))
- Else
- Return Nothing
- End If
- End Function
- Convert.IsDBNull()
- int? myValue = (Convert.IsDBNull(row["column"]) ? null : (int?) Convert.ToInt32(row["column"]));
- if (row["value"] != DBNull.Value)
- someObject.Member = row["value"];
- public static IsDBNull<T>(this object value, T default)
- {
- return (value == DBNull.Value)
- ? default
- : (T)value;
- }
- public static IsDBNull<T>(this object value)
- {
- return value.IsDBNull(default(T));
- }
- IDataRecord record; // Comes from somewhere
- entity.StringProperty = record["StringProperty"].IsDBNull<string>(null);
- entity.Int32Property = record["Int32Property"].IsDBNull<int>(50);
- entity.NoDefaultString = record["NoDefaultString"].IsDBNull<string>();
- entity.NoDefaultInt = record["NoDefaultInt"].IsDBNull<int>();
- ///<summary>
- /// Handles operations for Enumerations
- ///</summary>
- public static class DataRowUserExtensions
- {
- /// <summary>
- /// Gets the specified data row.
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="dataRow">The data row.</param>
- /// <param name="key">The key.</param>
- /// <returns></returns>
- public static T Get<T>(this DataRow dataRow, string key)
- {
- return (T) ChangeTypeTo<T>(dataRow[key]);
- }
- private static object ChangeTypeTo<T>(this object value)
- {
- Type underlyingType = typeof (T);
- if (underlyingType == null)
- throw new ArgumentNullException("value");
- if (underlyingType.IsGenericType && underlyingType.GetGenericTypeDefinition().Equals(typeof (Nullable<>)))
- {
- if (value == null)
- return null;
- var converter = new NullableConverter(underlyingType);
- underlyingType = converter.UnderlyingType;
- }
- // Try changing to Guid
- if (underlyingType == typeof (Guid))
- {
- try
- {
- return new Guid(value.ToString());
- }
- catch
- {
- return null;
- }
- }
- return Convert.ChangeType(value, underlyingType);
- }
- }
- if (dbRow.Get<int>("Type") == 1)
- {
- newNode = new TreeViewNode
- {
- ToolTip = dbRow.Get<string>("Name"),
- Text = (dbRow.Get<string>("Name").Length > 25 ? dbRow.Get<string>("Name").Substring(0, 25) + "..." : dbRow.Get<string>("Name")),
- ImageUrl = "file.gif",
- ID = dbRow.Get<string>("ReportPath"),
- Value = dbRow.Get<string>("ReportDescription").Replace("'", "'"),
- NavigateUrl = ("?ReportType=" + dbRow.Get<string>("ReportPath"))
- };
- }
- public static class DataExtensions
- {
- /// <summary>
- /// Gets the value.
- /// </summary>
- /// <typeparam name="T">The type of the data stored in the record</typeparam>
- /// <param name="record">The record.</param>
- /// <param name="columnName">Name of the column.</param>
- /// <returns></returns>
- public static T GetColumnValue<T>(this IDataRecord record, string columnName)
- {
- return GetColumnValue<T>(record, columnName, default(T));
- }
- /// <summary>
- /// Gets the value.
- /// </summary>
- /// <typeparam name="T">The type of the data stored in the record</typeparam>
- /// <param name="record">The record.</param>
- /// <param name="columnName">Name of the column.</param>
- /// <param name="defaultValue">The value to return if the column contains a <value>DBNull.Value</value> value.</param>
- /// <returns></returns>
- public static T GetColumnValue<T>(this IDataRecord record, string columnName, T defaultValue)
- {
- object value = record[columnName];
- if (value == null || value == DBNull.Value)
- {
- return defaultValue;
- }
- else
- {
- return (T)value;
- }
- }
- }
- int number = record.GetColumnValue<int>("Number",0)
- public String TryGetString(SqlDataReader sqlReader, int row)
- {
- String res = "";
- try
- {
- res = sqlReader.GetString(row);
- }
- catch (Exception)
- { }
- return res;
- }
- static void Main(string[] args)
- {
- object number = DBNull.Value;
- int newNumber = number.SafeDBNull<int>();
- Console.WriteLine(newNumber);
- }
- public static T SafeDBNull<T>(this object value, T defaultValue)
- {
- if (value == null)
- return default(T);
- if (value is string)
- return (T) Convert.ChangeType(value, typeof(T));
- return (value == DBNull.Value) ? defaultValue : (T)value;
- }
- public static T SafeDBNull<T>(this object value)
- {
- return value.SafeDBNull(default(T));
- }
- public static class DBH
- {
- /// <summary>
- /// Return default(T) if supplied with DBNull.Value
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="value"></param>
- /// <returns></returns>
- public static T Get<T>(object value)
- {
- return value == DBNull.Value ? default(T) : (T)value;
- }
- }
- DBH.Get<String>(itemRow["MyField"])
- someObject.Member = ( DBNull.Value.Equals(row["value"]) ? null : row["value"]);
- or
- if (! DBNull.Value.Equals(row["value"]) someObject.Member = row["value"];
- or sometimes
- someObject.Member = ( DBNull.Value.Equals(row["value"]) ? someObject.Member : row["value"]);
Add Comment
Please, Sign In to add comment