Aracılığıyla paylaş


IDataAdapter.Update(DataSet) Yöntem

Tanım

Belirtilen DataSet "Tablo" adlı bir satırdan DataTable eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini çağırır.

public:
 int Update(System::Data::DataSet ^ dataSet);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataSet dataSet);
public int Update(System.Data.DataSet dataSet);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
abstract member Update : System.Data.DataSet -> int
abstract member Update : System.Data.DataSet -> int
Public Function Update (dataSet As DataSet) As Integer

Parametreler

dataSet
DataSet

DataSet Veri kaynağını güncelleştirmek için kullanılır.

Döndürülenler

'den DataSetbaşarıyla güncelleştirilen satır sayısı.

Öznitelikler

Özel durumlar

INSERT, UPDATE veya DELETE deyimi yürütme girişimi, etkilenen sıfır kayıtla sonuçlandı.

Örnekler

Aşağıdaki örnek, OleDbDataAdapterveri kaynağı için türetilmiş sınıfını Update kullanır. Bu örnekte bir OleDbDataAdapter ve DataSetoluşturduğunuz varsayılır.

static private DataSet CreateCommandAndUpdate(
    string connectionString,
    string queryString)
{
    DataSet dataSet = new DataSet();

    using (OleDbConnection connection =
               new OleDbConnection(connectionString))
    {
        connection.Open();
        OleDbDataAdapter adapter =
            new OleDbDataAdapter();
        adapter.SelectCommand =
            new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder =
            new OleDbCommandBuilder(adapter);

        adapter.Fill(dataSet);

        // Code to modify data in the DataSet here.

        // Without the OleDbCommandBuilder, this line would fail.
        adapter.UpdateCommand = builder.GetUpdateCommand();
        adapter.Update(dataSet);
    }
    return dataSet;
}
Public Function CreateCommandAndUpdate( _
    ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Dim dataSet As New DataSet()

    Using connection As New OleDbConnection(connectionString)
        connection.Open()
        Dim adapter As New OleDbDataAdapter()

        adapter.SelectCommand = New OleDbCommand( _
            queryString, connection)

        Dim builder As OleDbCommandBuilder = _
            New OleDbCommandBuilder(adapter)

        adapter.Fill(dataSet)

        ' Code to modify the data in the DataSet here. 

        ' Without the OleDbCommandBuilder this line would fail.
        builder.GetUpdateCommand()
        adapter.Update(dataSet)
    End Using
    Return dataSet
End Function

Açıklamalar

Bir uygulama yöntemini çağırdığında Update , IDataAdapter özelliği inceler RowState ve içinde yapılandırılan DataSetdizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, Update içindeki satırların DataTablesıralanması nedeniyle bir DELETE deyimi, ardından bir INSERT deyimi ve sonra başka bir DELETE deyimi yürütebilir.

Bu deyimlerin toplu işlem olarak gerçekleştirilmediğini unutmayın; her satır tek tek güncelleştirilir. Deyim türlerinin GetChanges sırasını denetlemeniz gerekiyorsa bir uygulama yöntemini çağırabilir (örneğin, UPDAT'lerden önceki INSERT'ler). Daha fazla bilgi için bkz . DataAdapters ile Veri Kaynaklarını Güncelleştirme.

INSERT, UPDATE veya DELETE deyimleri belirtilmemişse, Update yöntemi bir özel durum oluşturur. Ancak, bir .NET Framework veri sağlayıcısının özelliğini ayarlarsanızSelectCommand, tek tablolu güncelleştirmeler için otomatik olarak SQL deyimleri oluşturmak üzere bir SqlCommandBuilder veya OleDbCommandBuilder nesnesi oluşturabilirsiniz. Ardından, ayarlamadığınız tüm ek SQL deyimleri CommandBuilder tarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin içinde DataSetmevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

yöntemi, Update bir güncelleştirme gerçekleştirmeden önce ilk eşlemede listelenen tablodan satırları alır. , Update özelliğinin değerini UpdatedRowSource kullanarak satırı güncelleştirir. Döndürülen tüm ek satırlar yoksayılır.

Herhangi bir veri içine DataSetOnRowUpdated geri yüklendikten sonra olay oluşturulur ve kullanıcının uzlaştırılan DataSet satırı ve komutu tarafından döndürülen tüm çıkış parametrelerini incelemesine olanak tanır. Bir satır başarıyla güncelleştirildikten sonra, bu satırdaki değişiklikler kabul edilir.

kullanırken Updateyürütme sırası aşağıdaki gibidir:

  1. içindeki DataRow değerler parametre değerlerine taşınır.

  2. OnRowUpdating olayı tetiklenir.

  3. Komut yürütülür.

  4. Komut olarak ayarlanırsa FirstReturnedRecord, döndürülen ilk sonuç içine DataRoweklenir.

  5. Çıkış parametreleri varsa, içine eklenirler DataRow.

  6. OnRowUpdated olayı tetiklenir.

  7. AcceptChanges adlandırılır.

ile ilişkilendirilmiş her komutun IDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısının SourceColumnParameter sınıfının ve SourceVersion özellikleri aracılığıyla geçerli satıra eşlenir. SourceColumn geçerli satır için parametre değerlerini almak için başvuruda bulunan bir DataTable sütuna IDataAdapter başvurur.

SourceColumn , herhangi bir tablo eşlemesi uygulanmadan önce eşlenmemiş sütun adını ifade eder. Var olmayan bir sütuna başvuruyorsa SourceColumn , gerçekleştirilen eylem aşağıdaki MissingMappingAction değerlerden birine bağlıdır.

Numaralandırma Değeri Gerçekleştirilen Eylem
MissingMappingAction.Passthrough Eşleme yoksa içindeki DataSet kaynak sütun adlarını ve tablo adlarını kullanın.
MissingMappingAction.Ignore bir SystemException oluşturulur. Eşlemeler açıkça ayarlandığında, bir giriş parametresi için eksik eşleme genellikle bir hatadan kaynaklanır.
MissingMappingAction.Error bir SystemException oluşturulur.

SourceColumn özelliği, çıkış veya giriş/çıkış parametrelerinin değerini ile eşlemek DataSetiçin de kullanılır. Var olmayan bir sütuna başvuruyorsa bir özel durum oluşturulur.

SourceVersion.NET Framework veri sağlayıcısının Parameter sınıfının özelliği, sütun değerinin Original, Currentveya Proposed sürümünün kullanılıp kullanılmayacağını belirler. Bu özellik genellikle iyimser eşzamanlılık ihlallerini denetlemek için UPDATE deyiminin WHERE yan tümcesine özgün değerleri eklemek için kullanılır.

Uyarı

Bir satır güncelleştirilirken bir hata oluşursa, bir özel durum oluşturulur ve güncelleştirmenin yürütülmesi sonlandırılır. Bir hatayla karşılaşıldığında özel durumlar oluşturmadan güncelleştirme işlemine devam etmek için çağırmadan önce Updateözelliğini olarak true ayarlayınContinueUpdateOnError. DataAdapter olayı içinde RowUpdated hatalara satır başına temelinde de yanıt vekleyebilirsiniz. Olay içinde bir özel durum oluşturmadan güncelleştirme işlemine RowUpdated devam etmek için özelliğini RowUpdatedEventArgs olarak ContinueayarlayınStatus.

Şunlara uygulanır