Connection, Command, and DataReader objects.System.Data.SqlClient package to use ADO.NET classes.SqlDataReader is a forward-only stream of rows.
SqlDataReader returned contains multiple result sets.NextResult or NextResultAsync on your SqlDataReader object.using (var connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
var command1 = new SqlCommand("SELECT * FROM [People]", connection);
using (var dataReader = await command1.ExecuteReaderAsync())
{
if (dataReader.HasRows)
{
while (await dataReader.ReadAsync())
{
// Evaluate fields in the current row...
if (dataReader["TargetField"] == null)
Console.WriteLine(dataReader["TargetField"]);
var field1 = dataReader.GetInt32(0);
var field2 = dataReader.GetInt32(1);
}
}
}
var command2 = new SqlCommand("UPDATE [People] SET FirstName='John'", connection);
var numberOfUpdatedRows1 = await command2.ExecuteNonQueryAsync();
var command3 = new SqlCommand("INSERT INTO [People] ([FirstName], [LastName]) VALUES (@firstName, @lastName)", connection);
command3.Parameters.AddWithValue("@firstName", "John");
command3.Parameters.AddWithValue("@lastName", "Doe");
var numberOfUpdatedRows2 = await command3.ExecuteNonQueryAsync();
}
Retrieving Identity or Autonumber Values
Command.ExecuteReader method has an overload that will take a CommandBehavior argument to modify the default behavior of the DataReader.SequentialAccess to the ExecuteReader method so that instead of loading rows of data, it will load data sequentially as it is received.
GetSchemaTable To Get Schema InformationDataReader is open, you can retrieve schema information about the current result set using the GetSchemaTable method.GetSchemaTable returns a DataTable object populated with rows and columns that contain the schema information for the current result set.
DataTable contains one row for each column of the result set.using (var dataReader = await command.ExecuteReaderAsync())
{
DataTable schemaTable = dataReader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
foreach (DataColumn column in schemaTable.Columns)
Console.WriteLine(String.Format("{0} = {1}", column.ColumnName, row[column]));
}