Freigeben über


SqlCeResultSet.Insert-Methode (SqlCeUpdatableRecord)

Fügt den angegebenen SqlCeUpdatableRecord in das zugrunde liegende Rowset ein.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Syntax

'Declaration
Public Sub Insert ( _
    record As SqlCeUpdatableRecord _
)
'Usage
Dim instance As SqlCeResultSet
Dim record As SqlCeUpdatableRecord

instance.Insert(record)
public void Insert(
    SqlCeUpdatableRecord record
)
public:
void Insert(
    SqlCeUpdatableRecord^ record
)
member Insert : 
        record:SqlCeUpdatableRecord -> unit 
public function Insert(
    record : SqlCeUpdatableRecord
)

Parameter

Hinweise

Die aktuelle Position von SqlCeResultSet wird durch das Einfügen eines Datensatzes nicht geändert.

Durch das Aufrufen dieser Funktion erfolgt das Einfügen sofort, ohne dass weitere Aufrufe zum Abschließen der Operation angefordert werden.

Wenn der angegebene Datensatz mehr Spalten aufweist, als im zugrunde liegende Rowset definiert sind, wird eine Ausnahme ausgelöst. Wenn weniger Werte angegeben werden, müssen die verbleibenden Spalten NULL-Werte zulassen, oder es muss für sie ein Standardwert definiert sein.

Eine InvalidOperationException wird ausgelöst, wenn diese Funktion für ein nicht aktualisierbares SqlCeResultSet aufgerufen wird oder wenn der Reader nicht auf einen gültigen Datensatz positioniert wurde.

Beispiele

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)"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "SELECT * FROM myTable"

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

    Dim rec As SqlCeUpdatableRecord = rs.CreateRecord()

    ' Insert 10 records
    '
    Dim i As Integer
    For i = 0 To 9
        rec.SetInt32(0, i)
        rs.Insert(rec)
    Next i

    ' Update the 5th record
    '
    If True = rs.ReadAbsolute(5) Then
        rs.SetInt32(0, 55)
        rs.Update()
    End If

    ' Delete the 2nd record
    '
    If True = rs.ReadAbsolute(2) Then
        rs.Delete()
    End If
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)";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "SELECT * FROM myTable";

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

    SqlCeUpdatableRecord rec = rs.CreateRecord();

    // Insert 10 records
    //
    for (int i = 0; i < 10; i++)
    {
        rec.SetInt32(0, i);
        rs.Insert(rec);
    }

    // Update the 5th record
    //
    if (true == rs.ReadAbsolute(5))
    {
        rs.SetInt32(0, 55);
        rs.Update();
    }

    // Delete the 2nd record
    //
    if (true == rs.ReadAbsolute(2))
    {
        rs.Delete();
    }
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    conn.Close();
}

Siehe auch

Verweis

SqlCeResultSet Klasse

Insert-Überladung

System.Data.SqlServerCe-Namespace