Freigeben über


SqlCeDataAdapter.DeleteCommand-Eigenschaft

Ruft eine SQL-Anweisung zum Löschen von Datensätzen aus dem Dataset ab oder legt diese fest.

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

Syntax

'Declaration
Public Property DeleteCommand As SqlCeCommand
    Get
    Set
'Usage
Dim instance As SqlCeDataAdapter
Dim value As SqlCeCommand

value = instance.DeleteCommand

instance.DeleteCommand = value
public SqlCeCommand DeleteCommand { get; set; }
public:
property SqlCeCommand^ DeleteCommand {
    SqlCeCommand^ get ();
    void set (SqlCeCommand^ value);
}
member DeleteCommand : SqlCeCommand with get, set
function get DeleteCommand () : SqlCeCommand
function set DeleteCommand (value : SqlCeCommand)

Eigenschaftswert

Typ: System.Data.SqlServerCe.SqlCeCommand
Eine SqlCeCommand-Klasse, die während der Ausführung der Update-Methode verwendet wird, um Datensätze aus der Datenquelle zu löschen, die gelöschten Zeilen in der DataSet-Klasse entsprechen.

Hinweise

Während eines Aufrufs der Update-Methode kann, wenn diese Eigenschaft nicht festgelegt wurde und Primärschlüsselinformationen in der DataSet-Klasse vorhanden sind, die DeleteCommand-Eigenschaft automatisch generiert werden, wenn Sie die SelectCommand-Eigenschaft festlegen und die SqlCeCommandBuilder-Klasse verwenden. Anschließend werden alle weiteren nicht festgelegten Befehle von der SqlCeCommandBuilder-Klasse generiert. Für diese Generierungslogik müssen im DataSet Schlüsselspalteninformationen vorhanden sein.

Wenn die DeleteCommand-Eigenschaft einer zuvor erstellten SqlCeCommand-Klasse zugeordnet wird, wird die SqlCeCommand-Klasse nicht geklont. Die DeleteCommand-Eigenschaft verwaltet einen Verweis auf das zuvor erstellte SqlCeCommand-Objekt.

Beispiele

Im folgenden Beispiel wird ein SqlCeDataAdapter erstellt, und einige seiner Eigenschaften werden festgelegt.

Dim cmd As SqlCeCommand = Nothing
Dim adp As SqlCeDataAdapter = Nothing

Try
    adp = New SqlCeDataAdapter()
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")

    ' Create the SelectCommand
    '
    cmd = conn.CreateCommand()
    cmd.CommandText = "SELECT * FROM Orders WHERE [Ship Country] = @country AND [Ship City] = @city"
    cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15)
    cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15)

    cmd.Parameters("@country").Value = "UK"
    cmd.Parameters("@city").Value = "London"

    adp.SelectCommand = cmd

    ' Create the DeleteCommand
    '
    cmd = conn.CreateCommand()
    cmd.CommandText = "DELETE FROM Orders WHERE [Order ID] = @orderID"

    Dim p As SqlCeParameter = cmd.Parameters.Add("@orderID", SqlDbType.NChar, 5, "Order ID")
    p.SourceVersion = DataRowVersion.Original

    adp.DeleteCommand = cmd

    ' Populate the dataset with the results from the SELECT statement
    '
    Dim ds As New DataSet()
    adp.Fill(ds)

    ' Modify the dataset
    '
    MessageBox.Show("Number of rows: " & ds.Tables(0).Rows.Count)

    ' Delete some rows
    '
    ds.Tables(0).Rows(3).Delete()
    ds.Tables(0).Rows(4).Delete()

    ' This will execute two DELETE statements 
    '
    adp.Update(ds.Tables(0))
Catch e As Exception
    MessageBox.Show(e.Message)
Finally
    If Not Nothing Is adp.SelectCommand Then
        adp.SelectCommand.Dispose()
    End If
    If Not Nothing Is adp.DeleteCommand Then
        adp.DeleteCommand.Dispose()
    End If
End Try
SqlCeCommand cmd = null;
SqlCeDataAdapter adp = null;

try
{
    adp = new SqlCeDataAdapter();
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");

    // Create the SelectCommand
    //
    cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM Orders WHERE [Ship Country] = @country AND [Ship City] = @city";
    cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15);
    cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15);

    cmd.Parameters["@country"].Value = "UK";
    cmd.Parameters["@city"].Value = "London";

    adp.SelectCommand = cmd;

    // Create the DeleteCommand
    //
    cmd = conn.CreateCommand();
    cmd.CommandText = "DELETE FROM Orders WHERE [Order ID] = @orderID";

    SqlCeParameter p = cmd.Parameters.Add("@orderID", SqlDbType.NChar, 5, "Order ID");
    p.SourceVersion = DataRowVersion.Original;

    adp.DeleteCommand = cmd;

    // Populate the dataset with the results from the SELECT statement
    //
    DataSet ds = new DataSet();
    adp.Fill(ds);

    // Modify the dataset
    //
    MessageBox.Show("Number of rows: " + ds.Tables[0].Rows.Count);

    // Delete some rows
    //
    ds.Tables[0].Rows[3].Delete();
    ds.Tables[0].Rows[4].Delete();

    // This will execute two DELETE statements 
    //
    adp.Update(ds.Tables[0]);
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    if (null != adp.SelectCommand) adp.SelectCommand.Dispose();
    if (null != adp.DeleteCommand) adp.DeleteCommand.Dispose();
}

Siehe auch

Verweis

SqlCeDataAdapter Klasse

System.Data.SqlServerCe-Namespace

InsertCommand

SelectCommand

UpdateCommand