2009-04-17 63 views
0

我更新的Web應用程序,並已決定,因爲它似乎真棒使用亞,我想學習它:)我想從我已經有一個方法返回一個SQLDataReader和已經做了這樣的使用SubSonic返回SQLDataReader?

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

只要檢查這是做到這一點的正確方法?還是有更好的亞音速語法,如ExecuteSQLDataReader()

回答

2

你指定的方式是你可以做到的一種方法。但是,沒有ExecuteSQLDataReader()函數,因爲它是多餘的。

由於SQLDataReader已經實現了IDataReader接口,因此創建特定於SQLDataReader的函數沒有意義。

你可以考慮以同樣的方式亞音速不返回接口,例如:

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

,並在你的邏輯進行分配:

SQLDataReader reader = GetAllCarTypes_dr(); 

我會認爲這是最好的方式做到這一點。

+0

非常感謝:) – leen3o 2009-04-17 14:56:16

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