Поделиться через


SqlCeCommand.ExecuteReader Method (CommandBehavior)

Передает команду CommandText соединению Connection и создает экземпляр SqlCeDataReader с одним из значений CommandBehavior.

Пространство имен: System.Data.SqlServerCe
Сборка: System.Data.SqlServerCe (в system.data.sqlserverce.dll)

Синтаксис

'Декларация
Public Function ExecuteReader ( _
    behavior As CommandBehavior _
) As SqlCeDataReader
public SqlCeDataReader ExecuteReader (
    CommandBehavior behavior
)
public:
SqlCeDataReader^ ExecuteReader (
    CommandBehavior behavior
)
public SqlCeDataReader ExecuteReader (
    CommandBehavior behavior
)
public function ExecuteReader (
    behavior : CommandBehavior
) : SqlCeDataReader

Параметры

Возвращаемое значение

Объект SqlCeDataReader.

Исключения

Тип исключения Условие
InvalidOperationException

Не удается выполнить команду в контексте транзакции, который отличается от контекста, в котором первоначально было прикреплено соединение.

Замечания

Объект SqlCeDataReader поддерживает специальный режим, который обеспечивает возможность эффективного чтения больших значений типа binary. Дополнительные сведения см. в параметре SequentialAccess для класса CommandBehavior.

Если SqlCeDataReader занят, то связанное соединение SqlCeConnection занято обслуживанием SqlCeDataReader. В этом состоянии, пока не будет вызван метод Close класса SqlCeDataReader, с объектом SqlCeConnection можно выполнить только операцию Close.

Пример

В следующем примере создается объект SqlCeCommand, а затем команда выполняется с передачей инструкции SELECT и объекта SqlCeConnection. Свойству CommandBehavior присваивается значение CloseConnection.

Dim conn As New SqlCeConnection(connString)
Dim cmd As New SqlCeCommand("SELECT * FROM myTable", conn)

cmd.Connection.Open()
Dim rdr As SqlCeDataReader = Nothing

Try
    ' Execute the reader; make sure you alway close the 
    ' reader after you're done using it (ideally in the finally block)
    '
    rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)

    While rdr.Read()
        Console.WriteLine(rdr.GetString(0))
    End While
Finally
    ' Closing the reader will also close the associated connection
    '
    rdr.Close()
End Try
SqlCeConnection conn = new SqlCeConnection(connString);
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM myTable", conn);

cmd.Connection.Open();
SqlCeDataReader rdr = null;

try
{
    // Execute the reader; make sure you alway close the 
    // reader after you're done using it (ideally in the finally block)
    //
    rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

    while (rdr.Read())
    {
        Console.WriteLine(rdr.GetString(0));
    }
}
finally
{
    // Closing the reader will also close the associated connection
    //
    rdr.Close();
}

Многопоточное использование

Все общие статические члены (Shared в Microsoft Visual Basic) этого типа можно использовать в многопоточных операциях. Безопасная многопоточная работа с членами экземпляров типа не гарантируется.

Платформы

Платформы разработки

Windows Vista, Windows Mobile 5.0, Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Mobile 2003 for Pocket PC, Windows CE 5.0
Сведения о версии
.NET Framework и NET Compact Framework
Поддерживается в версии 3.5
.NET Framework
Поддерживается в версии 3.0
.NET Compact Framework и .Net Framework
Поддерживается в версии 2.0

См. также

Справочник

SqlCeCommand Class
SqlCeCommand Members
System.Data.SqlServerCe Namespace