using System; using System.Collections; using System.Data; using System.Web.UI.WebControls; namespace test { public class SimplePage : System.Web.UI.Page { protected DataGrid testGrid; public SimplePage() { this.Load += new System.EventHandler(this.Page_Load); } private void Page_Load(object o, EventArgs e) { IDataReader reader = new DummyReader (); testGrid.DataSource = reader; testGrid.DataBind(); } } class DummyReader : IDataReader, IEnumerable { IEnumerator IEnumerable.GetEnumerator () { return new EnumThis (); } class EnumThis : IEnumerator { public bool MoveNext () { return false; } public void Reset () { } public object Current { get { return null; } } } public void Close () { Console.WriteLine ("Close"); } public DataTable GetSchemaTable () { Console.WriteLine ("GetSchemaTable"); return null; } public bool NextResult () { Console.WriteLine ("NextResult"); return false; } public bool Read () { Console.WriteLine ("Read"); return false; } public int Depth { get { Console.WriteLine ("Depth"); return 0; } } public bool IsClosed { get { Console.WriteLine ("IsClosed"); return false; } } public int RecordsAffected { get { Console.WriteLine ("RecordsAffected"); return -1; } } public void Dispose () { Console.WriteLine ("Dispose"); } public bool GetBoolean(int i) { return false; } public byte GetByte(int i) { return 0; } public long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferOffset, int length) { return 0; } public char GetChar(int i) { return 'A'; } public long GetChars(int i, long fieldOffset, char[] buffer, int bufferOffset, int length) { return 0; } public IDataReader GetData(int i) { return null; } public string GetDataTypeName(int i) { return null; } public DateTime GetDateTime(int i) { return DateTime.MinValue; } public Decimal GetDecimal(int i) { return 0; } public double GetDouble(int i) { return 0; } public Type GetFieldType(int i) { return null; } public float GetFloat(int i) { return 0; } public Guid GetGuid(int i) { return new Guid (); } public short GetInt16(int i) { return 0; } public int GetInt32(int i) { return 0; } public long GetInt64(int i) { return 0; } public string GetName(int i) { return null; } public int GetOrdinal(string name) { return 0; } public string GetString(int i) { return null; } public object GetValue(int i) { return null; } public int GetValues(object[] values) { return 0; } public bool IsDBNull(int i) { return false; } public int FieldCount { get { return 0; } } public object this [string name] { get { return null; } } public object this [int i] { get { return null; } } } }