@@ -116,7 +116,12 @@ public override long GetChars(int ordinal, long dataOffset, char[] buffer, int b
116116
117117 public override string GetDataTypeName ( int ordinal )
118118 {
119- throw new NotImplementedException ( ) ;
119+ if ( ordinal >= DbfTable . Columns . Count )
120+ {
121+ throw new IndexOutOfRangeException ( ) ;
122+ }
123+ var dbfColumn = DbfTable . Columns [ ordinal ] ;
124+ return dbfColumn . ColumnType . ToString ( ) ;
120125 }
121126
122127 public override DateTime GetDateTime ( int ordinal )
@@ -136,9 +141,9 @@ public override double GetDouble(int ordinal)
136141
137142 public override IEnumerator GetEnumerator ( )
138143 {
139- throw new NotImplementedException ( ) ;
144+ return new DbEnumerator ( this , closeReader : false ) ;
140145 }
141-
146+
142147 public override bool NextResult ( )
143148 {
144149 return false ;
@@ -189,7 +194,11 @@ public override bool IsDBNull(int ordinal)
189194
190195 public override int GetValues ( object [ ] values )
191196 {
192- throw new NotImplementedException ( ) ;
197+ for ( var ordinal = 0 ; ordinal < FieldCount ; ordinal ++ )
198+ {
199+ values [ ordinal ] = GetValue ( ordinal ) ;
200+ }
201+ return FieldCount ;
193202 }
194203
195204 public override object GetValue ( int ordinal )
@@ -269,7 +278,7 @@ public override DataTable GetSchemaTable()
269278 return GetSchemaTable ( columnSchema ) ;
270279 }
271280
272- public static DataTable GetSchemaTable ( ReadOnlyCollection < DbColumn > columnSchema )
281+ private static DataTable GetSchemaTable ( ReadOnlyCollection < DbColumn > columnSchema )
273282 {
274283 var table = new DataTable ( "SchemaTable" )
275284 {
@@ -302,7 +311,7 @@ public static DataTable GetSchemaTable(ReadOnlyCollection<DbColumn> columnSchema
302311 foreach ( var column in columnSchema )
303312 {
304313 var row = table . NewRow ( ) ;
305- row [ 0 ] = column . ColumnName ?? dbNull ;
314+ row [ 0 ] = column . ColumnName ;
306315 row [ 1 ] = column . ColumnOrdinal ?? dbNull ;
307316 row [ 2 ] = column . ColumnSize ?? dbNull ;
308317 row [ 3 ] = column . NumericPrecision ?? dbNull ;
0 commit comments