DbDataAdapter.Update Yöntem

Tanım

DataSeteklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

Aşırı Yüklemeler

Update(DataSet, String)

DataSet eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini belirtilen DataTable adıyla yürüterek veritabanındaki değerleri güncelleştirir.

Update(DataRow[], DataTableMapping)

Belirtilen DataRow nesne dizisindeki eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

Update(DataTable)

Belirtilen DataTableeklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

Update(DataSet)

Belirtilen DataSeteklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

Update(DataRow[])

DataSetbelirtilen dizide eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

Update(DataSet, String)

Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs

DataSet eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini belirtilen DataTable adıyla yürüterek veritabanındaki değerleri güncelleştirir.

public:
 int Update(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Update (System.Data.DataSet dataSet, string srcTable);
override this.Update : System.Data.DataSet * string -> int
Public Function Update (dataSet As DataSet, srcTable As String) As Integer

Parametreler

dataSet
DataSet

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

srcTable
String

Tablo eşlemesi için kullanılacak kaynak tablonun adı.

Döndürülenler

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

Özel durumlar

Kaynak tablo geçersiz.

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

Örnekler

Aşağıdaki örnek, veri kaynağını güncelleştirmek için OleDbDataAdaptertüretilmiş sınıfını kullanır.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString, string tableName)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers, tableName);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String, _
    ByVal tableName As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers, tableName)

        Return customers
    End Using
End Function

Açıklamalar

Uygulama Update yöntemini çağırdığında, DbDataAdapterRowState özelliğini inceler ve DataSetyapılandırılan dizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, UpdateDataTableiçindeki satırların sı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ği belirtilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin sırasını denetlemeniz gereken durumlarda (örneğin, UPDATE'den önce INSERT) GetChanges yöntemini çağırabilir. 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 SelectCommand özelliğini ayarlarsanız tek tablo güncelleştirmeleri 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 CommandBuildertarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin DataSetiçinde mevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

Update yöntemi, DataSet adları yalnızca büyük/küçük harfe göre farklılık gösteren birden çok DataTable nesnesi içerdiği senaryoları destekler. bir DataSetiçinde aynı ada sahip ancak farklı büyük/küçük harfe sahip birden çok tablo varsa Update ilgili tabloyu bulmak için büyük/küçük harfe duyarlı bir karşılaştırma gerçekleştirir ve tam eşleşme yoksa bir özel durum oluşturur. Aşağıdaki C# kodu bu davranışı gösterir.

DataSet ds = new DataSet();  
 ds.Tables.Add("aaa");  
 ds.Tables.Add("AAA");  
 adapter.Update(ds, "aaa"); // Updates "aaa", which already exists in the DataSet.  
 adapter.Update(ds, "AAA"); // Updates "AAA", which already exists in the DataSet.  
    adapter.Update(ds, "Aaa"); // Results in an exception.  

Update çağrılırsa ve DataSet adı yalnızca büyük/küçük harfe göre farklılık gösteren tek bir DataTable içeriyorsa, bu DataTable güncelleştirilir. Bu senaryoda karşılaştırma büyük/küçük harfe duyarlı değildir. Aşağıdaki C# kodu bu davranışı gösterir.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Update(dataset, "AAA"); // Updates table "aaa" because only one similarly named table is in the DataSet.  

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

herhangi bir veri DataSetiçine geri yüklendikten sonra OnRowUpdated olayı oluşturulur ve kullanıcının uzlaştırılan DataSet satırını 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.

Updatekullanırken yürütme sırası aşağıdaki gibidir:

  1. DataRow değerleri parametre değerlerine taşınır.

  2. OnRowUpdating olayı oluşturulur.

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

  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.

  5. Çıkış parametreleri varsa, DataRowyerleştirilir.

  6. OnRowUpdated olayı oluşturulur.

  7. AcceptChanges çağrılır.

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

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

Numaralandırma değeri Eylem gerçekleştirilen
MissingMappingAction.Passthrough Eşleme yoksa 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 hatanın sonucudur.
MissingMappingAction.Error Bir SystemException oluşturulur.

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

.NET Framework veri sağlayıcısının Parameter sınıfının SourceVersion özelliği, sütun değerinin Özgün, Geçerli veya Önerilen 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.

Not

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, Updateçağırmadan önce ContinueUpdateOnError özelliğini true olarak ayarlayın. DataAdapter'ın RowUpdated olayı içinde de hatalara satır başına yanıt vekleyebilirsiniz. RowUpdated olayı içinde özel durum oluşturmadan güncelleştirme işlemine devam etmek için RowUpdatedEventArgsStatus özelliğini Continueolarak ayarlayın.

Ayrıca bkz.

Şunlara uygulanır

Update(DataRow[], DataTableMapping)

Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs

Belirtilen DataRow nesne dizisindeki eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

protected:
 virtual int Update(cli::array <System::Data::DataRow ^> ^ dataRows, System::Data::Common::DataTableMapping ^ tableMapping);
protected virtual int Update (System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
override this.Update : System.Data.DataRow[] * System.Data.Common.DataTableMapping -> int
Protected Overridable Function Update (dataRows As DataRow(), tableMapping As DataTableMapping) As Integer

Parametreler

dataRows
DataRow[]

Veri kaynağını güncelleştirmek için kullanılan DataRow nesneleri dizisi.

tableMapping
DataTableMapping

Kullanılacak TableMappings koleksiyonu.

Döndürülenler

DataRow nesneleri dizisinden başarıyla güncelleştirilen satır sayısı.

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek DataRow yok.

-veya-

Güncelleştirilecek DataTable yok.

-veya-

Kaynak olarak kullanılacak DataSet yok.

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

Açıklamalar

Uygulama Update yöntemini çağırdığında, DbDataAdapterRowState özelliğini inceler ve DataSetyapılandırılan dizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, UpdateDataTableiçindeki satırların sı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ği belirtilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin sırasını denetlemeniz gereken durumlarda (örneğin, UPDAT'lerden önceki INSERT'ler) GetChanges yöntemini çağırabilir. 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 SelectCommand özelliğini ayarlarsanız tek tablo güncelleştirmeleri 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 CommandBuildertarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin DataSetiçinde mevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

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

herhangi bir veri DataSetiçine geri yüklendikten sonra OnRowUpdated olayı oluşturulur ve kullanıcının uzlaştırılan DataSet satırını 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.

Updatekullanırken yürütme sırası aşağıdaki gibidir:

  1. DataRow değerleri parametre değerlerine taşınır.

  2. OnRowUpdating olayı oluşturulur.

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

  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.

  5. Çıkış parametreleri varsa, DataRowyerleştirilir.

  6. OnRowUpdated olayı oluşturulur.

  7. AcceptChanges çağrılır.

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

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

Numaralandırma değeri Eylem gerçekleştirilen
MissingMappingAction.Passthrough Eşleme yoksa 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 hatanın sonucudur.
MissingMappingAction.Error Bir SystemException oluşturulur.

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

.NET Framework veri sağlayıcısının Parameter sınıfının SourceVersion özelliği, sütun değerinin Özgün, Geçerli veya Önerilen 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.

Not

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, Updateçağırmadan önce ContinueUpdateOnError özelliğini true olarak ayarlayın. DataAdapter'ın RowUpdated olayı içinde de hatalara satır başına yanıt vekleyebilirsiniz. RowUpdated olayı içinde özel durum oluşturmadan güncelleştirme işlemine devam etmek için RowUpdatedEventArgsStatus özelliğini Continueolarak ayarlayın.

Ayrıca bkz.

Şunlara uygulanır

Update(DataTable)

Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs

Belirtilen DataTableeklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

public:
 int Update(System::Data::DataTable ^ dataTable);
public int Update (System.Data.DataTable dataTable);
override this.Update : System.Data.DataTable -> int
Public Function Update (dataTable As DataTable) As Integer

Parametreler

dataTable
DataTable

Veri kaynağını güncelleştirmek için kullanılan DataTable.

Döndürülenler

DataTablebaşarıyla güncelleştirilen satır sayısı.

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek DataRow yok.

-veya-

Güncelleştirilecek DataTable yok.

-veya-

Kaynak olarak kullanılacak DataSet yok.

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

Örnekler

Aşağıdaki örnek, veri kaynağını güncelleştirmek için OleDbDataAdaptertüretilmiş sınıfını kullanır.

public DataTable CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataTable customers = new DataTable();
        adapter.Fill(customers);

        // code to modify data in DataTable here

        adapter.Update(customers);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataTable

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataTable()
        adapter.Fill(customers)

        ' Code to modify data in DataTable here 

        adapter.Update(customers)
        Return customers
    End Using
End Function

Açıklamalar

Uygulama Update yöntemini çağırdığında, DbDataAdapterRowState özelliğini inceler ve DataSetyapılandırılan dizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, UpdateDataTableiçindeki satırların sı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ği belirtilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin sırasını denetlemeniz gereken durumlarda (örneğin, UPDAT'lerden önceki INSERT'ler) GetChanges yöntemini çağırabilir. 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 SelectCommand özelliğini ayarlarsanız tek tablo güncelleştirmeleri 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 CommandBuildertarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin DataSetiçinde mevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

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

herhangi bir veri DataSetiçine geri yüklendikten sonra OnRowUpdated olayı oluşturulur ve kullanıcının uzlaştırılan DataSet satırını 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.

Updatekullanırken yürütme sırası aşağıdaki gibidir:

  1. DataRow değerleri parametre değerlerine taşınır.

  2. OnRowUpdating olayı oluşturulur.

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

  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.

  5. Çıkış parametreleri varsa, DataRowyerleştirilir.

  6. OnRowUpdated olayı oluşturulur.

  7. AcceptChanges çağrılır.

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

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

Numaralandırma değeri Eylem gerçekleştirilen
MissingMappingAction.Passthrough Eşleme yoksa 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 hatanın sonucudur.
MissingMappingAction.Error Bir SystemException oluşturulur.

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

.NET Framework veri sağlayıcısının Parameter sınıfının SourceVersion özelliği, sütun değerinin Özgün, Geçerli veya Önerilen 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.

Not

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, Updateçağırmadan önce ContinueUpdateOnError özelliğini true olarak ayarlayın. DataAdapter'ın RowUpdated olayı içinde de hatalara satır başına yanıt vekleyebilirsiniz. RowUpdated olayı içinde özel durum oluşturmadan güncelleştirme işlemine devam etmek için RowUpdatedEventArgsStatus özelliğini Continueolarak ayarlayın.

Ayrıca bkz.

Şunlara uygulanır

Update(DataSet)

Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs

Belirtilen DataSeteklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

public:
 override int Update(System::Data::DataSet ^ dataSet);
public override int Update (System.Data.DataSet dataSet);
override this.Update : System.Data.DataSet -> int
Public Overrides Function Update (dataSet As DataSet) As Integer

Parametreler

dataSet
DataSet

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

Döndürülenler

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

Uygulamalar

Özel durumlar

Kaynak tablo geçersiz.

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

Örnekler

Aşağıdaki örnek, veri kaynağını güncelleştirmek için OleDbDataAdaptertüretilmiş sınıfını kullanır.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers)

        Return customers
    End Using
End Function

Açıklamalar

Uygulama Update yöntemini çağırdığında, DbDataAdapterRowState özelliğini inceler ve DataSetyapılandırılan dizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, UpdateDataTableiçindeki satırların sı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ği belirtilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin sırasını denetlemeniz gereken durumlarda (örneğin, UPDAT'lerden önceki INSERT'ler) GetChanges yöntemini çağırabilir. 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 SelectCommand özelliğini ayarlarsanız tek tablo güncelleştirmeleri 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 CommandBuildertarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin DataSetiçinde mevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

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

herhangi bir veri DataSetiçine geri yüklendikten sonra OnRowUpdated olayı oluşturulur ve kullanıcının uzlaştırılan DataSet satırını 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.

Updatekullanırken yürütme sırası aşağıdaki gibidir:

  1. DataRow değerleri parametre değerlerine taşınır.

  2. OnRowUpdating olayı oluşturulur.

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

  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.

  5. Çıkış parametreleri varsa, DataRowyerleştirilir.

  6. OnRowUpdated olayı oluşturulur.

  7. AcceptChanges çağrılır.

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

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

Numaralandırma değeri Eylem gerçekleştirilen
MissingMappingAction.Passthrough Eşleme yoksa 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 hatanın sonucudur.
MissingMappingAction.Error Bir SystemException oluşturulur.

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

.NET Framework veri sağlayıcısının Parameter sınıfının SourceVersion özelliği, sütun değerinin Özgün, Geçerli veya Önerilen 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.

Not

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, Updateçağırmadan önce ContinueUpdateOnError özelliğini true olarak ayarlayın. DataAdapter'ın RowUpdated olayı içinde de hatalara satır başına yanıt vekleyebilirsiniz. RowUpdated olayı içinde özel durum oluşturmadan güncelleştirme işlemine devam etmek için RowUpdatedEventArgsStatus özelliğini Continueolarak ayarlayın.

Ayrıca bkz.

Şunlara uygulanır

Update(DataRow[])

Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs
Kaynak:
DbDataAdapter.cs

DataSetbelirtilen dizide eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki değerleri güncelleştirir.

public:
 int Update(cli::array <System::Data::DataRow ^> ^ dataRows);
public int Update (System.Data.DataRow[] dataRows);
override this.Update : System.Data.DataRow[] -> int
Public Function Update (dataRows As DataRow()) As Integer

Parametreler

dataRows
DataRow[]

Veri kaynağını güncelleştirmek için kullanılan DataRow nesneleri dizisi.

Döndürülenler

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

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek DataRow yok.

-veya-

Güncelleştirilecek DataTable yok.

-veya-

Kaynak olarak kullanılacak DataSet yok.

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

Örnekler

Aşağıdaki örnek, veri kaynağını güncelleştirmek için OleDbDataAdaptertüretilmiş sınıfını kullanır.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        //Insert new records from DataSet
        DataRow[] rows = customers.Tables[0].Select(
            null, null, DataViewRowState.Added);
        adapter.Update(rows);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        ' Insert new records from DataSet
        Dim rows() As DataRow = customers.Tables(0).Select( _
            Nothing, Nothing, DataViewRowState.Added)
        adapter.Update(rows)

        Return customers
    End Using
End Function

Açıklamalar

Uygulama Update yöntemini çağırdığında, DbDataAdapterRowState özelliğini inceler ve DataSetyapılandırılan dizinlerin sırasına göre her satır için gerekli INSERT, UPDATE veya DELETE deyimlerini yinelemeli olarak yürütür. Örneğin, UpdateDataTableiçindeki satırların sı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ği belirtilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin sırasını denetlemeniz gereken durumlarda (örneğin, UPDAT'lerden önceki INSERT'ler) GetChanges yöntemini çağırabilir. 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 SelectCommand özelliğini ayarlarsanız tek tablo güncelleştirmeleri 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 CommandBuildertarafından oluşturulur. Bu oluşturma mantığı, anahtar sütun bilgilerinin DataSetiçinde mevcut olmasını gerektirir. Daha fazla bilgi için bkz. CommandBuilders ile Komut Oluşturma.

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

herhangi bir veri DataSetiçine geri yüklendikten sonra OnRowUpdated olayı oluşturulur ve kullanıcının uzlaştırılan DataSet satırını 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.

Updatekullanırken yürütme sırası aşağıdaki gibidir:

  1. DataRow değerleri parametre değerlerine taşınır.

  2. OnRowUpdating olayı oluşturulur.

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

  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.

  5. Çıkış parametreleri varsa, DataRowyerleştirilir.

  6. OnRowUpdated olayı oluşturulur.

  7. AcceptChanges çağrılır.

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

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

Numaralandırma değeri Eylem gerçekleştirilen
MissingMappingAction.Passthrough Eşleme yoksa 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 hatanın sonucudur.
MissingMappingAction.Error Bir SystemException oluşturulur.

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

.NET Framework veri sağlayıcısının Parameter sınıfının SourceVersion özelliği, sütun değerinin Özgün, Geçerli veya Önerilen 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.

Not

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, Updateçağırmadan önce ContinueUpdateOnError özelliğini true olarak ayarlayın. DataAdapter'ın RowUpdated olayı içinde de hatalara satır başına yanıt vekleyebilirsiniz. RowUpdated olayı içinde özel durum oluşturmadan güncelleştirme işlemine devam etmek için RowUpdatedEventArgsStatus özelliğini Continueolarak ayarlayın.

Ayrıca bkz.

Şunlara uygulanır