Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Handling DB Nulls
Message
Information générale
Forum:
ASP.NET
Catégorie:
Conception classe
Divers
Thread ID:
01440804
Message ID:
01440956
Vues:
24
Found it. Missing the 'this' keyword on some methods.


>Ok, I think I'm having an implementation problem.
>
>Here's my class with the extension methods, taken from your blog (A bit long):
>
>
>public static class MiscFunctions
>{
>    public static object GetNonNull(object Test, object Default) 
>    { 
>        if (Test != DBNull.Value && Test != null)            
>            return Test; 
>        else            
>            return Default; 
>    }
>
>    public static string GetNonNull(object Test, string Default) 
>    { 
>        if (Test != DBNull.Value && Test != null) 
>        { 
>            if (Test is DateTime) 
>            { 
>                DateTime TestDT = Convert.ToDateTime(Test); 
>                DateTime SqlNull = new DateTime(1900, 1, 1); 
>                if (TestDT == SqlNull)                    
>                    return Default; 
>            } 
>            else 
>                if (Test is bool) 
>                { 
>                    bool YesNo = Convert.ToBoolean(Test); 
>                    if (YesNo)                    
>                        return "Yes"; 
>                    else                    
>                        return "No"; 
>                } 
>            return Test.ToString().Trim(); 
>        } 
>        else            
>            return Default; 
>    }
>
>    public static int GetNonNull(this object Test, int Default)
>    {
>        if (Test != DBNull.Value && Test != null)
>            return Convert.ToInt32(Test);
>        else
>            return Default;
>    }
>
>    public static float GetNonNull(this object Test, float Default)
>    {
>        if (Test != DBNull.Value && Test != null)
>        {
>            return Convert.ToSingle(Test); ;
>        }
>        else
>        {
>            return Default;
>        }
>    }
>
>    public static DateTime GetNonNull(object Test, DateTime Default)
>    { 
>        if (Test != DBNull.Value && Test != null) 
>        { 
>            DateTime TestDT = Convert.ToDateTime(Test); 
>            DateTime SqlNull = new DateTime(1900, 1, 1); 
>            DateTime NetNull = new DateTime(1, 1, 1); 
>            if (TestDT != SqlNull && TestDT != NetNull)                
>                return TestDT; 
>            else                
>                return Default; 
>        } 
>        else            
>            return Default; 
>    }
>
>    public static string GetNonNullDate(object Test, string Default) 
>    { 
>        if (Test != DBNull.Value && Test != null) 
>        { 
>            if (Test is DateTime) 
>            { 
>                DateTime TestDT = Convert.ToDateTime(Test);
>                DateTime SqlNull = new DateTime(1900, 1, 1); 
>                if (TestDT != SqlNull)                
>                    return TestDT.ToShortDateString(); 
>            } 
>            return Default; 
>        } 
>        else        
>            return Default; 
>    }
>
>    public static DateTime GetNonNullDate(object Test) 
>    { 
>        if (Test != DBNull.Value && Test != null && Test is DateTime)         
>            return Convert.ToDateTime(Test); 
>        else        
>            return new DateTime(1900, 1, 1); 
>    }
>}
>
>
>And here's how I'm using it:
>
>
>public override void LoadData()
>{
>    DataSet ds = AppDataAccess.GetProjects(this.RecordId);
>
>    if (ds != null && ds.Tables.Count > 0)
>    {
>        _ProjectKey = (int)ds.Tables[0].Rows[0]["ProjectKey"].GetNonNull(0);
>        _ClientKey = (int)ds.Tables[0].Rows[0]["ClientKey"].GetNonNull(0);
>        _ProjectTypeKey = (int)ds.Tables[0].Rows[0]["ProjectTypeKey"].GetNonNull(0);
>        _RateTypeKey = (int)ds.Tables[0].Rows[0]["RateTypeKey"].GetNonNull(0);
>        _ProjectStatusKey = (int)ds.Tables[0].Rows[0]["ProjectStatusKey"].GetNonNull(0);
>        _PriorityKey = (int)ds.Tables[0].Rows[0]["PriorityKey"].GetNonNull(0);
>        _ManagerKey = (int)ds.Tables[0].Rows[0]["ManagerKey"].GetNonNull(0);
>        _ProjectName = ds.Tables[0].Rows[0]["ProjectName"].ToString();
>        _ProjectCode = ds.Tables[0].Rows[0]["ProjectCode"].ToString();
>        _RateAmt = (float)ds.Tables[0].Rows[0]["RateAmt"].GetNonNull(0.00f);
>        _EstHours = (float)ds.Tables[0].Rows[0]["EstHours"].GetNonNull(0.00f);
>        _TotalHours = (float)ds.Tables[0].Rows[0]["TotalHours"].GetNonNull(0.00f);
>        _EstStartDate = (DateTime)ds.Tables[0].Rows[0]["EstStartDate"].GetNonNull();  // Problem here
>        _EstEndDate = (DateTime)ds.Tables[0].Rows[0]["EstEndDate"];
>        _ActualStartDate = (DateTime)ds.Tables[0].Rows[0]["ActualStartDate"];
>        _ActualEndDate = (DateTime)ds.Tables[0].Rows[0]["ActualEndDate"];
>        _PercentDone = (float)ds.Tables[0].Rows[0]["PercentDone"].GetNonNull(0.00f);
>        _Comments = ds.Tables[0].Rows[0]["Comments"].ToString();
>        _ProjectType = ds.Tables[0].Rows[0]["ProjectType"].ToString();
>        _RateType = ds.Tables[0].Rows[0]["RateType"].ToString();
>        _Status = ds.Tables[0].Rows[0]["Status"].ToString();
>        _Priority = ds.Tables[0].Rows[0]["Priority"].ToString();
>        _MgrFirstName = ds.Tables[0].Rows[0]["MgrFirstName"].ToString();
>        _MgrLastName = ds.Tables[0].Rows[0]["MgrLastName"].ToString();
>    }
>}
>
>Note the line with the problem. GetNonNull() shows up in intellisense, but none of the overloads compile. There are only 2 overloads, for float and int. GetNonNullDate is NOT showing up at all.
>
>I have no clue what's wrong here. HELP!
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform