2009-04-17 64 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