Converts specified value to nullable value. : Number « Data Types « C# / C Sharp






Converts specified value to nullable value.

   
#region License
// Copyright (c) 2007 James Newton-King
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
#endregion

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data.SqlTypes;

namespace Newtonsoft.Utilities.Database
{
  public static class DatabaseUtils
  {
    /// <summary>
    /// Converts specified value to nullable value.
    /// </summary>
    /// <param name="value">The value.</param>
    /// <returns></returns>
    public static T? ConvertToNullableValue<T>(object value) where T : struct
    {
      if (value == null)
      {
        return null;
      }
      else if (value == DBNull.Value)
      {
        return null;
      }
      else if (value is string && string.IsNullOrEmpty((string)value))
      {
        return null;
      }
      else
      {
        if (!(value is T))
        {
          try
          {
            value = Convert.ChangeType(value, typeof(T));
          }
          catch (Exception e)
          {
            throw new ArgumentException("Value is not a valid type.", "value", e);
          }
        }

        return new T?((T)value);
      }
    }

    /// <summary>
    /// Determines whether the specified value is null.
    /// </summary>
    /// <param name="value">The value.</param>
    /// <returns>
    ///   <c>true</c> if the specified value is null; otherwise, <c>false</c>.
    /// </returns>
    public static bool IsNull(object value)
    {
      if (value == null)
        return true;

      if (value is INullable && ((INullable)value).IsNull)
        return true;

      if (value == DBNull.Value)
        return true;

      return false;
    }
  }
}

   
    
    
  








Related examples in the same category

1.Converting Degrees to RadiansConverting Degrees to Radians
2.Converting Radians to DegreesConverting Radians to Degrees
3.Converting a Number in Another Base to Base10Converting a Number in Another Base to Base10
4.Determining if a String is a Valid Number by Parse functionsDetermining if a String is a Valid Number by Parse functions
5.Use regualr expression to check: is it a numberUse regualr expression to check: is it a number
6.Use int.Parse to check: is it an integerUse int.Parse to check: is it an integer
7.Use Integer.Parse to check: is it a numberUse Integer.Parse to check: is it a number
8.Use regualr expression to check: Is it an Unsigned IntegerUse regualr expression to check: Is it an Unsigned Integer
9.Use regular expression to get number from stringUse regular expression to get number from string
10.Faster way to get number from stringFaster way to get number from string
11.Converting Celsius to FahrenheitConverting Celsius to Fahrenheit
12.Converting Fahrenheit to CelsiusConverting Fahrenheit to Celsius
13.Is it a double numberIs it a double number
14.Test for an Even or Odd ValueTest for an Even or Odd Value
15.System maximums and minimumsSystem maximums and minimums
16.Declare int and use itDeclare int and use it
17.Use int variableUse int variable
18.shows that using an instance of the System.Int32 stucture is the same as using the int keywordshows that using an instance of the System.Int32 stucture is the same as using the int keyword
19.Numeric Parsing DemoNumeric Parsing Demo
20.Number calculation utils
21.Double Range
22.Int Range
23.Sparse Double Range
24.Sparse Int Range
25.Checks if a value is in a range (inclusive)
26.Determines whether the specified value is null.
27.Validate number
28.Native SizeOf
29.Is Numeric