SqlCeResultSet Class

업데이트, 스크롤 및 바인딩이 가능한 커서입니다.

네임스페이스: System.Data.SqlServerCe
어셈블리: System.Data.SqlServerCe(system.data.sqlserverce.dll에 있음)

구문

‘선언
<DefaultMemberAttribute("Item")> _
Public Class SqlCeResultSet
    Inherits SqlCeDataReader
    Implements IEnumerable, IListSource
[DefaultMemberAttribute("Item")] 
public class SqlCeResultSet : SqlCeDataReader, IEnumerable, IListSource
[DefaultMemberAttribute(L"Item")] 
public ref class SqlCeResultSet : public SqlCeDataReader, IEnumerable, IListSource
/** @attribute DefaultMemberAttribute("Item") */ 
public class SqlCeResultSet extends SqlCeDataReader implements IEnumerable, IListSource
DefaultMemberAttribute("Item") 
public class SqlCeResultSet extends SqlCeDataReader implements IEnumerable, IListSource

주의

이전 버전의 SQL Server Compact 3.5에서는 데이터에 컨트롤을 바인딩하려면 DataSet을 사용해야 합니다. SqlCeDataReaderDataSet보다 높은 성능을 제공하지만 정방향 전용이고 업데이트는 할 수 없는 커서입니다. SQL Server Compact 3.5에서 SqlCeResultSetSqlCeDataReader와 비슷한 성능에 DataSet의 업데이트 및 스크롤 기능이 결합되어 있습니다.

SqlCeResultSet을 만들려면 개체의 생성자를 사용하는 대신 ExecuteResultSet 메서드를 호출해야 합니다.

ResultSetOptions를 사용하여 SqlCeResultSet의 스크롤 기능, 업데이트 기능 및 민감도를 지정할 수 있습니다. 민감도는 SqlCeResultSet이 내부 또는 외부 요인에 의한 변경 사항을 인식할 수 있는지 여부를 결정합니다.##########

SqlCeDataReader의 기본 위치는 첫 번째 레코드 앞입니다. 데이터에 액세스하려면 읽기를 호출해야 합니다. 첫 번째 읽기는 커서를 첫 번째 레코드에 배치합니다. 동작은 SqlCeResultSet.Read 메서드의 동작과 다릅니다. SqlCeResultSet의 기본 위치는 첫 번째 레코드입니다. SqlCeResultSet을 만든 후 바로 SqlCeResultSet.Read 메서드를 호출하면 커서가 두 번째 레코드로 이동합니다.

상속 계층

System.Object
   System.MarshalByRefObject
     System.Data.Common.DbDataReader
       System.Data.SqlServerCe.SqlCeDataReader
        System.Data.SqlServerCe.SqlCeResultSet

다음 예제에서는 SQL Server Compact 3.5 데이터베이스를 새로 만듭니다. 그런 다음 데이터 집합을 데이터로 채우도록 SqlCeResultSet이 초기화됩니다.

Dim conn As SqlCeConnection = Nothing

Try
    File.Delete("Test.sdf")

    Dim engine As New SqlCeEngine("Data Source = Test.sdf")
    engine.CreateDatabase()

    conn = New SqlCeConnection("Data Source = Test.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "CREATE TABLE myTable (col1 INT, col2 MONEY, col3 NVARCHAR(200))"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "SELECT * FROM myTable"

    Dim rs As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Updatable Or ResultSetOptions.Scrollable)

    Dim rec As SqlCeUpdatableRecord = rs.CreateRecord()

    rec.SetInt32(0, 34)
    rec.SetDecimal(1, System.Convert.ToDecimal(44.66))
    rec.SetString(2, "Sample text")

    rs.Insert(rec)
Catch e As Exception
    MessageBox.Show(e.Message)
Finally
    conn.Close()
End Try
SqlCeConnection conn = null;

try
{
    File.Delete("Test.sdf");

    SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
    engine.CreateDatabase();

    conn = new SqlCeConnection("Data Source = Test.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE myTable (col1 INT, col2 MONEY, col3 NVARCHAR(200))";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "SELECT * FROM myTable";

    SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable | 
        ResultSetOptions.Scrollable);

    SqlCeUpdatableRecord rec = rs.CreateRecord();

    rec.SetInt32(0, 34);
    rec.SetDecimal(1, (decimal)44.66);
    rec.SetString(2, "Sample text");

    rs.Insert(rec);
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    conn.Close();
}

스레드 보안

이 유형의 모든 public static(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에서 지원됨

참고 항목

참조

SqlCeResultSet Members
System.Data.SqlServerCe Namespace