public abstract class rsReport { //Generic report class //Public fields public string cstrReportName; public string cstrReportSource; public string cstrSourceText; //Private fields private SqlDataReader cobjDataReader; private static SqlConnection cobjConn; //Protected fields protected SqlCommand cobjCommand = new SqlCommand(); //Constructor public rsReport(SqlConnection Conn) { //Set ref to connection and set connection property //of command object cobjConn = Conn; cobjCommand.Connection=cobjConn; } //Members // public string executeReader() { //Set command text cobjCommand.CommandText=cstrSourceText; //Get data try { //Data returned sucessfully, return zero lenght string cobjDataReader= cobjCommand.ExecuteReader(); return ""; } catch (Exception excE) { //Exception, return error msg return excE.ToString(); } } //Properties public SqlDataReader ReportData //Returns data reader object { get { return cobjDataReader; } } }