2009-04-17 11 views
0

ich eine Web-Anwendung bin Aktualisierung und entschieden haben, SubSonic zu verwenden, wie es will genial und ich so scheint es, lernen :) Ich versuche, ein SQLDataReader von einer Methode zurückzukehren habe ich bereits und haben es wie dieseRückgabe eines SQLDataReader mit SubSonic?

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

Nur dies zu überprüfen ist der richtige Weg, es zu tun? Oder gibt es eine bessere Unterschallsyntax wie ExecuteSQLDataReader()?

Antwort

2

Die Art, wie Sie angegeben haben, ist eine Möglichkeit, wie Sie es tun können. Es gibt jedoch keine ExecuteSQLDataReader() Funktion, da diese redundant ist.

Da SQLDataReader bereits die Schnittstelle IDataReader implementiert, ist es sinnlos, eine spezifische Funktion für eine SQLDataReader zu erstellen.

Sie können prüfen, die Schnittstelle in der gleichen Weise SubSonic tut, zum Beispiel der Rückkehr:

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

und die Zuordnung in Ihrer Logik ausführen:

SQLDataReader reader = GetAllCarTypes_dr(); 

ich dies der beste Weg in Betracht ziehen würde, um TU es.

+0

Super danke :) – 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