2009-04-17 14 views
0

Je mets à jour une application web et ont décidé d'utiliser subsonique comme il semble génial et je veux apprendre :) Je suis en train de retourner un SQLDataReader d'une méthode que je l'ai déjà et ai fait comme çaRetourne un SQLDataReader utilisant SubSonic?

public SqlDataReader GetAllCarTypes_dr() 
{ 
    return (SqlDataReader)new Query("tblCarType").ExecuteReader(); 
} 

Juste vérifier cela est la bonne façon de le faire? Ou y at-il une meilleure syntaxe subsonique comme ExecuteSQLDataReader()?

Répondre

2

La façon dont vous avez spécifié est une façon de le faire. Cependant, il n'y a pas de fonction ExecuteSQLDataReader() car elle est redondante.

Depuis SQLDataReader implémente déjà l'interface IDataReader, il ne sert à rien de créer une fonction spécifique à un SQLDataReader.

Vous pouvez envisager de revenir à l'interface de la même manière SubSonic le fait, par exemple:

public IDataReader GetAllCarTypes_dr() 
{ 
    return new Query("tblCarType").ExecuteReader(); 
} 

et exécuter la mission dans votre logique:

SQLDataReader reader = GetAllCarTypes_dr(); 

Je considère ce la meilleure façon de fais le.

+0

Impressionnant merci :) – leen3o

0
private void CreateDynamicControls() 
{ 


    panGvHolder.Controls.Clear(); 

    Query qry = Northwind.Product.CreateQuery(); 
    qry.Columns.AddRange(Northwind.Product.Schema.Columns); 
    qry.WHERE("UnitPrice > 15").AND("UnitsInStock < 20 "); 
    //WHERE("UnitPrice > 15").AND("UnitsInStock < 30 "); 



    using (IDataReader rdr = qry.ExecuteReader()) 
    { 
     Response.Write("<table>"); 
     while (rdr.Read()) 
     { 
      Response.Write("<tr>"); 
      for (int i = 0; i < rdr.FieldCount; i++) 
      { 
       Response.Write("<td>"); 
       Response.Write(rdr[i].ToString() + " "); 
       Response.Write("<td>"); 
      } //eof for 
      Response.Write("</br>"); 
      Response.Write("</tr>"); 
     } 
     Response.Write("<table>"); 
    } 
} //eof method 
Questions connexes