Skip to content

Commit 4d89b68

Browse files
authored
Merge pull request #16 from adriangodong/more-redirects
Added more redirects to SqlDataReader instance.
2 parents 54d4a2f + 53e6b1a commit 4d89b68

File tree

2 files changed

+176
-20
lines changed

2 files changed

+176
-20
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111

1212
- Implemented override for `IDataReader.GetSchemaTable()`. [#14](https://github.com/adriangodong/system-data-async/pull/14)
13+
- Implemented more overrides missing from `SqlDataReader`. [#16](https://github.com/adriangodong/system-data-async/pull/16)
1314

1415
### Changed
1516

System.Data.Async/SqlClient/SqlDataReaderAsync.cs

Lines changed: 175 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
using System.Collections;
22
using System.Data.Async.Common;
33
using System.Data.SqlClient;
4+
using System.Data.SqlTypes;
5+
using System.IO;
46
using System.Threading;
57
using System.Threading.Tasks;
8+
using System.Xml;
69

710
namespace 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

Comments
 (0)