SqlDataReader Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een manier om een stroom alleen-doorstuurrijen van rijen uit een SQL Server-database te lezen. Deze klasse kan niet worden overgenomen.
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
type SqlDataReader = class
inherit MarshalByRefObject
interface IEnumerable
interface IDataReader
interface IDisposable
interface IDataRecord
type SqlDataReader = class
inherit DbDataReader
interface IDataReader
interface IDisposable
interface IDataRecord
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
- Overname
- Overname
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt een SqlConnection, a SqlCommanden een SqlDataReader. In het voorbeeld worden de gegevens gelezen en naar het consolevenster geschreven. De code sluit vervolgens de SqlDataReader. De SqlConnection code wordt automatisch aan het einde van het using codeblok gesloten.
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord dataRecord)
{
Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
ReadSingleRow(CType(reader, IDataRecord))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Private Sub ReadSingleRow(ByVal record As IDataRecord)
Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub
Opmerkingen
Als u een SqlDataReaderobject wilt maken, moet u de ExecuteReader methode van het SqlCommand object aanroepen in plaats van rechtstreeks een constructor te gebruiken.
Terwijl het SqlDataReader wordt gebruikt, is de gekoppelde SqlConnection bezig met het leveren van de SqlDataReaderene bewerking en kunnen er geen andere bewerkingen worden uitgevoerd op de SqlConnection andere dan het sluiten ervan. Dit is het geval totdat de Close methode van de SqlDataReader aangeroepen methode wordt aangeroepen. U kunt bijvoorbeeld geen uitvoerparameters ophalen totdat u het aanroept Close.
Wijzigingen die zijn aangebracht in een resultatenset door een ander proces of een andere thread terwijl gegevens worden gelezen, zijn mogelijk zichtbaar voor de gebruiker van de SqlDataReader. Het precieze gedrag is echter afhankelijk van timing.
IsClosed en RecordsAffected zijn de enige eigenschappen die u kunt aanroepen nadat de SqlDataReader is gesloten. Hoewel de RecordsAffected eigenschap toegankelijk is terwijl de SqlDataReader eigenschap bestaat, moet u altijd aanroepen Close voordat u de waarde RecordsAffected retourneert om een nauwkeurige retourwaarde te garanderen.
Wanneer u sequentiële toegang (CommandBehavior.SequentialAccess) gebruikt, wordt er een InvalidOperationException verhoogd als de SqlDataReader positie geavanceerd is en een andere leesbewerking wordt uitgevoerd op de vorige kolom.
Note
Vermijd voor optimale prestaties SqlDataReader het maken van onnodige objecten of het maken van onnodige kopieën van gegevens. Daarom worden meerdere aanroepen naar methoden geretourneerd, zoals GetValue het retourneren van een verwijzing naar hetzelfde object. Wees voorzichtig als u de onderliggende waarde van de objecten wijzigt die worden geretourneerd door methoden zoals GetValue.
Eigenschappen
| Name | Description |
|---|---|
| Connection |
Hiermee wordt de SqlConnection gekoppelde aan de SqlDataReader. |
| Depth |
Hiermee wordt een waarde opgehaald die de diepte van nesten voor de huidige rij aangeeft. |
| FieldCount |
Hiermee haalt u het aantal kolommen in de huidige rij op. |
| HasRows |
Hiermee wordt een waarde opgehaald die aangeeft of de SqlDataReader rijen een of meer rijen bevatten. |
| IsClosed |
Hiermee wordt een Booleaanse waarde opgehaald die aangeeft of het opgegeven SqlDataReader exemplaar is gesloten. |
| Item[Int32] |
Hiermee haalt u de waarde van de opgegeven kolom op in de systeemeigen indeling op basis van de kolomordinaal. |
| Item[String] |
Hiermee haalt u de waarde van de opgegeven kolom op in de systeemeigen indeling op basis van de kolomnaam. |
| RecordsAffected |
Hiermee wordt het aantal rijen opgehaald dat is gewijzigd, ingevoegd of verwijderd door de Transact-SQL-instructie uit te voeren. |
| VisibleFieldCount |
Hiermee haalt u het aantal velden op SqlDataReader dat niet verborgen is. |
Methoden
| Name | Description |
|---|---|
| Close() |
Hiermee sluit u het SqlDataReader object. |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Dispose() |
Alle resources die door het huidige exemplaar van de DbDataReader klasse worden gebruikt, worden vrijgegeven. (Overgenomen van DbDataReader) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de DbDataReader beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van DbDataReader) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetBoolean(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een Booleaanse waarde. |
| GetByte(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een byte. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Leest een stroom van bytes van de opgegeven kolom offset in de buffer een matrix die begint bij de opgegeven buffer offset. |
| GetChar(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als één teken. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
Leest een stroom tekens van de opgegeven kolom offset in de buffer als een matrix die begint bij de opgegeven buffer offset. |
| GetData(Int32) |
Retourneert een IDataReader voor de opgegeven kolomordinaal. |
| GetData(Int32) |
Retourneert een geneste gegevenslezer voor de aangevraagde kolom. (Overgenomen van DbDataReader) |
| GetDataTypeName(Int32) |
Hiermee haalt u een tekenreeks op die het gegevenstype van de opgegeven kolom vertegenwoordigt. |
| GetDateTime(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een DateTime object. |
| GetDateTimeOffset(Int32) |
Haalt de waarde van de opgegeven kolom op als een DateTimeOffset object. |
| GetDbDataReader(Int32) |
Retourneert een DbDataReader object voor de aangevraagde kolomordinaal die kan worden overschreven met een providerspecifieke implementatie. (Overgenomen van DbDataReader) |
| GetDecimal(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een Decimal object. |
| GetDouble(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een drijvendekommagetal met dubbele precisie. |
| GetEnumerator() |
Retourneert een IEnumerator die door de SqlDataReader. |
| GetFieldType(Int32) |
Hiermee haalt u het Type gegevenstype van het object op. |
| GetFieldValue<T>(Int32) |
Hiermee haalt u synchroon de waarde van de opgegeven kolom op als een type. GetFieldValueAsync<T>(Int32, CancellationToken) is de asynchrone versie van deze methode. |
| GetFieldValueAsync<T>(Int32, CancellationToken) |
Asynchroon haalt de waarde van de opgegeven kolom op als een type. GetFieldValue<T>(Int32) is de synchrone versie van deze methode. |
| GetFieldValueAsync<T>(Int32) |
Asynchroon haalt de waarde van de opgegeven kolom op als het aangevraagde type. (Overgenomen van DbDataReader) |
| GetFloat(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een drijvendekommagetal met één precisie. |
| GetGuid(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een GUID (Globally Unique Identifier). |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetInt16(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een 16-bits geheel getal dat is ondertekend. |
| GetInt32(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een 32-bits geheel getal dat is ondertekend. |
| GetInt64(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een 64-bits geheel getal dat is ondertekend. |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetName(Int32) |
Hiermee haalt u de naam van de opgegeven kolom op. |
| GetOrdinal(String) |
Hiermee haalt u de kolomordinaal op, op basis van de naam van de kolom. |
| GetProviderSpecificFieldType(Int32) |
|
| GetProviderSpecificValue(Int32) |
Hiermee wordt een |
| GetProviderSpecificValues(Object[]) |
Hiermee haalt u een matrix van objecten op die een weergave zijn van de specifieke waarden van de onderliggende provider. |
| GetSchemaTable() |
Retourneert een DataTable die de kolommetagegevens van de SqlDataReader. |
| GetSqlBinary(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlBinary. |
| GetSqlBoolean(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlBoolean. |
| GetSqlByte(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlByte. |
| GetSqlBytes(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als SqlBytes. |
| GetSqlChars(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als SqlChars. |
| GetSqlDateTime(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlDateTime. |
| GetSqlDecimal(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlDecimal. |
| GetSqlDouble(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlDouble. |
| GetSqlGuid(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlGuid. |
| GetSqlInt16(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlInt16. |
| GetSqlInt32(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlInt32. |
| GetSqlInt64(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlInt64. |
| GetSqlMoney(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlMoney. |
| GetSqlSingle(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlSingle. |
| GetSqlString(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een SqlString. |
| GetSqlValue(Int32) |
Retourneert de gegevenswaarde in de opgegeven kolom als een SQL Server type. |
| GetSqlValues(Object[]) |
Vult een matrix van Object die de waarden voor alle kolommen in de record bevat, uitgedrukt als SQL Server typen. |
| GetSqlXml(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een XML-waarde. |
| GetStream(Int32) |
Haalt binaire, afbeeldings-, varbinaire, UDT- en variantgegevenstypen op als een Stream. |
| GetString(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op als een tekenreeks. |
| GetTextReader(Int32) |
Hiermee worden char-, NChar-, NText-, NVarChar-, tekst-, varChar- en variantgegevenstypen opgehaald als een TextReader. |
| GetTimeSpan(Int32) |
Haalt de waarde van de opgegeven kolom op als een TimeSpan object. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetValue(Int32) |
Hiermee haalt u de waarde van de opgegeven kolom op in de systeemeigen indeling. |
| GetValues(Object[]) |
Hiermee wordt een matrix met objecten gevuld met de kolomwaarden van de huidige rij. |
| GetXmlReader(Int32) |
Hiermee worden gegevens van het type XML opgehaald als een XmlReader. |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| IsCommandBehavior(CommandBehavior) |
Bepaalt of de opgegeven CommandBehavior overeenkomt met die van de SqlDataReader . |
| IsDBNull(Int32) |
Hiermee wordt een waarde opgehaald die aangeeft of de kolom niet-bestaande of ontbrekende waarden bevat. |
| IsDBNullAsync(Int32, CancellationToken) |
Een asynchrone versie van IsDBNull(Int32), waarmee een waarde wordt opgehaald die aangeeft of de kolom niet-bestaande of ontbrekende waarden bevat. Het annuleringstoken kan worden gebruikt om aan te vragen dat de bewerking wordt afgelaten voordat de time-out van de opdracht is verstreken. Uitzonderingen worden gerapporteerd via het geretourneerde taakobject. |
| IsDBNullAsync(Int32) |
Asynchroon krijgt een waarde die aangeeft of de kolom niet-bestaande of ontbrekende waarden bevat. (Overgenomen van DbDataReader) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| NextResult() |
De gegevenslezer naar het volgende resultaat gaat bij het lezen van de resultaten van batch-Transact-SQL-instructies. |
| NextResultAsync() |
De lezer wordt asynchroon naar het volgende resultaat doorgevroegd bij het lezen van de resultaten van een batch met instructies. (Overgenomen van DbDataReader) |
| NextResultAsync(CancellationToken) |
Een asynchrone versie van NextResult(), die de gegevenslezer naar het volgende resultaat leidt bij het lezen van de resultaten van batch-Transact-SQL-instructies. Het annuleringstoken kan worden gebruikt om aan te vragen dat de bewerking wordt afgelaten voordat de time-out van de opdracht is verstreken. Uitzonderingen worden gerapporteerd via het geretourneerde taakobject. |
| Read() |
Hiermee gaat u naar SqlDataReader de volgende record. |
| ReadAsync() |
De lezer wordt asynchroon doorgezet naar de volgende record in een resultatenset. (Overgenomen van DbDataReader) |
| ReadAsync(CancellationToken) |
Een asynchrone versie van Read(), waarmee de SqlDataReader volgende record wordt weergegeven. Het annuleringstoken kan worden gebruikt om aan te vragen dat de bewerking wordt afgelaten voordat de time-out van de opdracht is verstreken. Uitzonderingen worden gerapporteerd via het geretourneerde taakobject. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDataRecord.GetData(Int32) |
Retourneert een IDataReader voor de opgegeven kolomordinaal. |
| IDisposable.Dispose() |
Hiermee worden alle resources vrijgegeven die door de gegevenslezer worden gebruikt. |
| IEnumerable.GetEnumerator() |
Retourneert een enumerator die kan worden gebruikt om de itemverzameling te herhalen. |
Extensiemethoden
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Hiermee schakelt u parallelle uitvoering van een query in. |
| AsQueryable(IEnumerable) |
Converteert een IEnumerable naar een IQueryable. |
| CanGetColumnSchema(DbDataReader) |
Hiermee wordt een waarde opgehaald die aangeeft of een DbDataReader kolomschema kan worden opgehaald. |
| Cast<TResult>(IEnumerable) |
Cast de elementen van een IEnumerable naar het opgegeven type. |
| GetColumnSchema(DbDataReader) |
Hiermee haalt u het kolomschema (DbColumn verzameling) voor een DbDataReader. |
| OfType<TResult>(IEnumerable) |
Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type. |