11using System . Collections ;
22using System . Data . Async . Common ;
33using System . Data . SqlClient ;
4+ using System . Data . SqlTypes ;
5+ using System . IO ;
46using System . Threading ;
57using System . Threading . Tasks ;
8+ using System . Xml ;
69
710namespace System . Data . Async . SqlClient
811{
@@ -18,6 +21,20 @@ public SqlDataReaderAsync(SqlDataReader sqlDataReader, SqlCommandAsync sqlComman
1821 this . sqlCommandAsync = sqlCommandAsync ;
1922 }
2023
24+ #region System.Data.SqlClient.SqlDataReader Redirect
25+ // All overridden members from DbDataReader and
26+ // all public members from SqlDataReader
27+ // should be redirected by this class to the sqlDataReader instance.
28+
29+ public override object this [ string name ] => sqlDataReader [ name ] ;
30+ public override object this [ int ordinal ] => sqlDataReader [ ordinal ] ;
31+ public override int VisibleFieldCount => sqlDataReader . VisibleFieldCount ;
32+ public override bool IsClosed => sqlDataReader . IsClosed ;
33+ public override bool HasRows => sqlDataReader . HasRows ;
34+ public override int FieldCount => sqlDataReader . FieldCount ;
35+ public override int Depth => sqlDataReader . Depth ;
36+ public override int RecordsAffected => sqlDataReader . RecordsAffected ;
37+
2138 public override bool GetBoolean ( int ordinal )
2239 {
2340 return sqlDataReader . GetBoolean ( ordinal ) ;
@@ -53,6 +70,11 @@ public override DateTime GetDateTime(int ordinal)
5370 return sqlDataReader . GetDateTime ( ordinal ) ;
5471 }
5572
73+ public DateTimeOffset GetDateTimeOffset ( int ordinal )
74+ {
75+ return sqlDataReader . GetDateTimeOffset ( ordinal ) ;
76+ }
77+
5678 public override decimal GetDecimal ( int ordinal )
5779 {
5880 return sqlDataReader . GetDecimal ( ordinal ) ;
@@ -63,11 +85,26 @@ public override double GetDouble(int ordinal)
6385 return sqlDataReader . GetDouble ( ordinal ) ;
6486 }
6587
88+ public override IEnumerator GetEnumerator ( )
89+ {
90+ return sqlDataReader . GetEnumerator ( ) ;
91+ }
92+
6693 public override Type GetFieldType ( int ordinal )
6794 {
6895 return sqlDataReader . GetFieldType ( ordinal ) ;
6996 }
7097
98+ public override T GetFieldValue < T > ( int ordinal )
99+ {
100+ return sqlDataReader . GetFieldValue < T > ( ordinal ) ;
101+ }
102+
103+ public override Task < T > GetFieldValueAsync < T > ( int ordinal , CancellationToken cancellationToken )
104+ {
105+ return sqlDataReader . GetFieldValueAsync < T > ( ordinal , cancellationToken ) ;
106+ }
107+
71108 public override float GetFloat ( int ordinal )
72109 {
73110 return sqlDataReader . GetFloat ( ordinal ) ;
@@ -103,11 +140,136 @@ public override int GetOrdinal(string name)
103140 return sqlDataReader . GetOrdinal ( name ) ;
104141 }
105142
143+ public override Type GetProviderSpecificFieldType ( int ordinal )
144+ {
145+ return sqlDataReader . GetProviderSpecificFieldType ( ordinal ) ;
146+ }
147+
148+ public override object GetProviderSpecificValue ( int ordinal )
149+ {
150+ return sqlDataReader . GetProviderSpecificValue ( ordinal ) ;
151+ }
152+
153+ public override int GetProviderSpecificValues ( object [ ] values )
154+ {
155+ return sqlDataReader . GetProviderSpecificValues ( values ) ;
156+ }
157+
158+ public override DataTable GetSchemaTable ( )
159+ {
160+ return sqlDataReader . GetSchemaTable ( ) ;
161+ }
162+
163+ public SqlBinary GetSqlBinary ( int ordinal )
164+ {
165+ return sqlDataReader . GetSqlBinary ( ordinal ) ;
166+ }
167+
168+ public SqlBoolean GetSqlBoolean ( int ordinal )
169+ {
170+ return sqlDataReader . GetSqlBoolean ( ordinal ) ;
171+ }
172+
173+ public SqlByte GetSqlByte ( int ordinal )
174+ {
175+ return sqlDataReader . GetSqlByte ( ordinal ) ;
176+ }
177+
178+ public SqlBytes GetSqlBytes ( int ordinal )
179+ {
180+ return sqlDataReader . GetSqlBytes ( ordinal ) ;
181+ }
182+
183+ public SqlChars GetSqlChars ( int ordinal )
184+ {
185+ return sqlDataReader . GetSqlChars ( ordinal ) ;
186+ }
187+
188+ public SqlDateTime GetSqlDateTime ( int ordinal )
189+ {
190+ return sqlDataReader . GetSqlDateTime ( ordinal ) ;
191+ }
192+
193+ public SqlDecimal GetSqlDecimal ( int ordinal )
194+ {
195+ return sqlDataReader . GetSqlDecimal ( ordinal ) ;
196+ }
197+
198+ public SqlDouble GetSqlDouble ( int ordinal )
199+ {
200+ return sqlDataReader . GetSqlDouble ( ordinal ) ;
201+ }
202+
203+ public SqlGuid GetSqlGuid ( int ordinal )
204+ {
205+ return sqlDataReader . GetSqlGuid ( ordinal ) ;
206+ }
207+
208+ public SqlInt16 GetSqlInt16 ( int ordinal )
209+ {
210+ return sqlDataReader . GetSqlInt16 ( ordinal ) ;
211+ }
212+
213+ public SqlInt32 GetSqlInt32 ( int ordinal )
214+ {
215+ return sqlDataReader . GetSqlInt32 ( ordinal ) ;
216+ }
217+
218+ public SqlInt64 GetSqlInt64 ( int ordinal )
219+ {
220+ return sqlDataReader . GetSqlInt64 ( ordinal ) ;
221+ }
222+
223+ public SqlMoney GetSqlMoney ( int ordinal )
224+ {
225+ return sqlDataReader . GetSqlMoney ( ordinal ) ;
226+ }
227+
228+ public SqlSingle GetSqlSingle ( int ordinal )
229+ {
230+ return sqlDataReader . GetSqlSingle ( ordinal ) ;
231+ }
232+
233+ public SqlString GetSqlString ( int ordinal )
234+ {
235+ return sqlDataReader . GetSqlString ( ordinal ) ;
236+ }
237+
238+ public object GetSqlValue ( int ordinal )
239+ {
240+ return sqlDataReader . GetSqlValue ( ordinal ) ;
241+ }
242+
243+ public int GetSqlValues ( object [ ] values )
244+ {
245+ return sqlDataReader . GetSqlValues ( values ) ;
246+ }
247+
248+ public SqlXml GetSqlXml ( int ordinal )
249+ {
250+ return sqlDataReader . GetSqlXml ( ordinal ) ;
251+ }
252+
253+ public override Stream GetStream ( int ordinal )
254+ {
255+ return sqlDataReader . GetStream ( ordinal ) ;
256+ }
257+
106258 public override string GetString ( int ordinal )
107259 {
108260 return sqlDataReader . GetString ( ordinal ) ;
109261 }
110262
263+ public override TextReader GetTextReader ( int ordinal )
264+ {
265+ return sqlDataReader . GetTextReader ( ordinal ) ;
266+ }
267+
268+ public TimeSpan GetTimeSpan ( int ordinal )
269+ {
270+ return sqlDataReader . GetTimeSpan ( ordinal ) ;
271+ }
272+
111273 public override object GetValue ( int ordinal )
112274 {
113275 return sqlDataReader . GetValue ( ordinal ) ;
@@ -118,33 +280,31 @@ public override int GetValues(object[] values)
118280 return sqlDataReader . GetValues ( values ) ;
119281 }
120282
283+ public XmlReader GetXmlReader ( int ordinal )
284+ {
285+ return sqlDataReader . GetXmlReader ( ordinal ) ;
286+ }
287+
121288 public override bool IsDBNull ( int ordinal )
122289 {
123290 return sqlDataReader . IsDBNull ( ordinal ) ;
124291 }
125292
126- public override DataTable GetSchemaTable ( )
293+ public override Task < bool > IsDBNullAsync ( int ordinal , CancellationToken cancellationToken )
127294 {
128- return sqlDataReader . GetSchemaTable ( ) ;
295+ return sqlDataReader . IsDBNullAsync ( ordinal , cancellationToken ) ;
129296 }
130297
131- public override int FieldCount => sqlDataReader . FieldCount ;
132-
133- public override object this [ int ordinal ] => sqlDataReader [ ordinal ] ;
134-
135- public override object this [ string name ] => sqlDataReader [ name ] ;
136-
137- public override int RecordsAffected => sqlDataReader . RecordsAffected ;
138-
139- public override bool HasRows => sqlDataReader . HasRows ;
140-
141- public override bool IsClosed => sqlDataReader . IsClosed ;
142-
143298 public override bool NextResult ( )
144299 {
145300 return sqlDataReader . NextResult ( ) ;
146301 }
147302
303+ public override Task < bool > NextResultAsync ( CancellationToken cancellationToken )
304+ {
305+ return sqlDataReader . NextResultAsync ( cancellationToken ) ;
306+ }
307+
148308 public override bool Read ( )
149309 {
150310 return sqlDataReader . Read ( ) ;
@@ -155,12 +315,7 @@ public override Task<bool> ReadAsync(CancellationToken cancellationToken)
155315 return sqlDataReader . ReadAsync ( cancellationToken ) ;
156316 }
157317
158- public override int Depth => sqlDataReader . Depth ;
159-
160- public override IEnumerator GetEnumerator ( )
161- {
162- return sqlDataReader . GetEnumerator ( ) ;
163- }
318+ #endregion
164319
165320 protected override void Dispose ( bool disposing )
166321 {
0 commit comments