--- /dev/null
+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; }
+ }
+ }
+}