次の方法で共有


SqlCeResultSet クラス

名前空間:  System.Data.SqlServerCe
アセンブリ:  System.Data.SqlServerCe (System.Data.SqlServerCe.dll)

構文

'宣言
Public Class SqlCeResultSet _
    Inherits SqlCeDataReader _
    Implements IEnumerable, IListSource
'使用
Dim instance As SqlCeResultSet
public class SqlCeResultSet : SqlCeDataReader, 
    IEnumerable, IListSource
public ref class SqlCeResultSet : public SqlCeDataReader, 
    IEnumerable, IListSource
type SqlCeResultSet =  
    class
        inherit SqlCeDataReader
        interface IEnumerable
        interface IListSource
    end
public class SqlCeResultSet extends SqlCeDataReader implements IEnumerable, IListSource

説明

SQL Server Compact 3.5 の以前のバージョンでは、コントロールをデータにバインドするには、DataSet を使用する必要がありました。SqlCeDataReader を使用すると DataSet より優れたパフォーマンスを得られますが、移動は前方向だけであり、更新もできないカーソルです。SQL Server Compact 3.5 では、SqlCeResultSet が、DataSet の更新機能とスクロール機能に加えて SqlCeDataReader と同様のパフォーマンスを提供します。

SqlCeResultSet を作成するには、オブジェクトのコンストラクタを使用せずに、ExecuteResultSet メソッドを呼び出す必要があります。

ResultSetOptions では、SqlCeResultSet のスクロール機能、更新機能、および感度 (SqlCeResultSet が、自身またはその他のメソッドによって加えられた変更を検知できるかどうかを指定) を指定できます。

SqlCeDataReader の既定の位置は、先頭のレコードの前です。データへのアクセスを開始するには、Read を呼び出す必要があります。最初の Read で、カーソルが先頭レコードに配置されます。これは、SqlCeResultSet.Read メソッドの動作と異なります。SqlCeResultSet の既定の位置は、先頭レコードです。SqlCeResultSet を作成した直後に SqlCeResultSet.Read メソッドを呼び出すと、カーソルが 2 番目のレコードに移動します。

使用例

新しい 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();
}

継承階層

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

スレッド セーフ

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

関連項目

参照

SqlCeResultSet メンバー

System.Data.SqlServerCe 名前空間