Thursday, October 18, 2012

JCDCHelper code to return one column of one row cleanly

lots of us when returning one column, return an object and then have to cast that to a <T>

This fixes that to work more cleanly.

public T JcdcAdoGetOneColumn<T>(string mainSql){

 object answer;
 using (IAdoHelper ado = ObjectFactory.GetNamedInstance<IAdoHelper>("JCDC")) {

  answer = ado.GetOneColumn<T>(mainSql, null); }


 return ConvertObjectToT<T>( answer );}

  private T ConvertObjectToT<T>( object answer )
{

 // handle the cast for both primitive and non primitive types - EWB if ( answer is T ) {

  return ( T ) answer; }

 else {
 try {
  return ( T ) Convert.ChangeType( answer, typeof ( T ) ); }

 catch ( InvalidCastException ) {

  return default( T ); }
}
 

No comments:

Post a Comment