Aracılığıyla paylaş


DbDataAdapter.Update Yöntem

Tanım

veritabanına eklenen, güncelleştirilen veya silinen her satır için ilgili INSERT, UPDATE veya DELETE deyimlerini yürüterek veritabanındaki DataSetdeğerleri Güncelleştirmeler.

Aşırı Yüklemeler

Update(DataSet, String)

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

Update(DataRow[], DataTableMapping)

Belirtilen nesne dizisindeki DataRow 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ştirmeler.

Update(DataTable)

Belirtilen DataTableiçindeki 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ştirmeler.

Update(DataSet)

Belirtilen DataSetiçindeki 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ştirmeler.

Update(DataRow[])

veritabanında belirtilen dizide 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ştirmeler.

Update(DataSet, String)

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

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

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

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

srcTable
String

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

Döndürülenler

uygulamasından başarıyla güncelleştirilen DataSetsatır sayısı.

Özel durumlar

Kaynak tablo geçersiz.

INSERT, UPDATE veya DELETE deyimini yürütme girişimi, hiçbir kaydın etkilenmesine neden oldu.

Örnekler

Aşağıdaki örnek, OleDbDataAdapterveri kaynağını güncelleştirmek için tü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

Bir uygulama yöntemini çağırdığında Update , DbDataAdapter ö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 sıralanması nedeniyle bir DELETE deyimini, ardından insert deyimini ve sonra başka bir DELETE deyimini DataTableyü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 GetChanges sırasını denetlemeniz gereken durumlarda yöntemini çağırabilir (örneğin, UPDATE'den önce INSERT). 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 SqlCommandBuilder .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 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 adları yalnızca büyük/küçük harfe DataSet göre farklılık gösteren birden çok DataTable nesne içeren senaryoları destekler. içinde aynı ada sahip ancak farklı büyük/küçük harfe sahip birden çok tablo varsaDataSetUpdate, ilgili tabloyu bulmak için büyük/küçük harfe duyarlı bir karşılaştırma yapar 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.  

çağrılırsa Update ve DataSet adı yalnızca büyük/küçük harfe göre farklılık gösteren bir DataTable ad içeriyorsa, bu DataTable güncelleştirilir. Bu senaryoda, karşılaştırma büyük/küçük harfe duyarsızdır. 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.  

yöntemi, Update güncelleştirme yapmadan önce ilk eşlemede listelenen tablodan satırları alır. ardından Update , özelliğinin değerini UpdatedRowSource kullanarak satırı yeniler. Döndürülen diğer satırlar yoksayılır.

verileri 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ırda yapılan 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. Olay OnRowUpdating oluşturulur.

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

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

  5. Çıkış parametreleri varsa, bu parametreler içine DataRowyerleştirilir.

  6. Olay OnRowUpdated oluşturulur.

  7. AcceptChanges çağrıldığında.

ile ilişkilendirilmiş her komutun DbDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısı Parameter sınıfının SourceColumn 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 DbDataAdapter 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 oluşturulur SystemException . Eşlemeler açıkça ayarlandığında, bir giriş parametresi için eksik eşleme genellikle bir hatanın sonucudur.
MissingMappingAction.Error oluşturulur SystemException .

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

SourceVersion bir .NET Framework veri sağlayıcısının Parameter sınıfının ö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 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 özel durum oluşturmadan güncelleştirme işlemine RowUpdated devam etmek için özelliğini RowUpdatedEventArgs olarak ContinueayarlayınStatus.

Ayrıca bkz.

Şunlara uygulanır

Update(DataRow[], DataTableMapping)

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

Belirtilen nesne dizisindeki DataRow 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ştirmeler.

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 bir nesne dizisi DataRow .

tableMapping
DataTableMapping

TableMappings Kullanılacak koleksiyon.

Döndürülenler

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

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek yok DataRow .

-veya-

Güncelleştirilecek yok DataTable .

-veya-

Kaynak olarak kullanılacak yok DataSet .

INSERT, UPDATE veya DELETE deyimini yürütme girişimi, hiçbir kaydın etkilenmesine neden oldu.

Açıklamalar

Bir uygulama yöntemini çağırdığında Update , DbDataAdapter ö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 sıralanması nedeniyle bir DELETE deyimini, ardından insert deyimini ve sonra başka bir DELETE deyimini DataTableyü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 GetChanges sırasını denetlemeniz gereken durumlarda 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 SqlCommandBuilder .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 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 güncelleştirme yapmadan önce ilk eşlemede listelenen tablodan satırları alır. ardından Update , özelliğinin değerini UpdatedRowSource kullanarak satırı yeniler. Döndürülen diğer satırlar yoksayılır.

verileri 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ırda yapılan 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. Olay OnRowUpdating oluşturulur.

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

  4. Komut olarak FirstReturnedRecordayarlanırsa, döndürülen ilk sonuç içine DataRowyerleştirilir.

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

  6. Olay OnRowUpdated oluşturulur.

  7. AcceptChanges çağrıldığında.

ile ilişkilendirilmiş her komutun DbDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısı Parameter sınıfının SourceColumn 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 DbDataAdapter başvurur.

SourceColumn , herhangi bir tablo eşlemesi uygulanmadan önce eşlenmemiş sütun adını ifade eder. Var olmayan bir sütuna başvuruyorsanız 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 hatanın sonucudur.
MissingMappingAction.Error bir SystemException oluşturulur.

SourceColumn özelliği, çıkış veya giriş/çıkış parametrelerinin değerini ile yeniden 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 Ö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

Satır güncelleştirilirken hata oluşursa, bir özel durum oluşur ve güncelleştirmenin yürütülmesi sonlandırılır. 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.

Ayrıca bkz.

Şunlara uygulanır

Update(DataTable)

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

Belirtilen DataTableiçindeki 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ştirmeler.

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

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

Döndürülenler

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

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek yok DataRow .

-veya-

Güncelleştirilecek yok DataTable .

-veya-

Kaynak olarak kullanılacak yok DataSet .

INSERT, UPDATE veya DELETE deyimini yürütme girişimi, hiçbir kaydın etkilenmesine neden oldu.

Örnekler

Aşağıdaki örnek, OleDbDataAdapterveri kaynağını güncelleştirmek için tü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

Bir uygulama yöntemini çağırdığında Update , DbDataAdapter ö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 sıralanması nedeniyle bir DELETE deyimini, ardından bir INSERT deyimini ve sonra başka bir DELETE deyimini DataTableyürütebilir.

Bu deyimlerin toplu işlem olarak gerçekleştirilmediğine dikkat edilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin GetChanges sırasını denetlemeniz gereken durumlarda 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 SqlCommandBuilder .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 veya OleDbCommandBuilder nesnesi oluşturabilirsiniz. Daha sonra, 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 güncelleştirme gerçekleştirmeden önce ilk eşlemede listelenen tablodan satırları alır. ardından Update , özelliğinin değerini UpdatedRowSource kullanarak satırı yeniler. 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. Olay OnRowUpdating oluşturulur.

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

  4. Komut olarak FirstReturnedRecordayarlanırsa, döndürülen ilk sonuç içine DataRowyerleştirilir.

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

  6. Olay OnRowUpdated oluşturulur.

  7. AcceptChanges çağrıldığında.

ile ilişkilendirilmiş her komutun DbDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısı Parameter sınıfının SourceColumn 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 DbDataAdapter başvurur.

SourceColumn , herhangi bir tablo eşlemesi uygulanmadan önce eşlenmemiş sütun adını ifade eder. Var olmayan bir sütuna başvuruyorsanız 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 hatanın sonucudur.
MissingMappingAction.Error bir SystemException oluşturulur.

SourceColumn özelliği, çıkış veya giriş/çıkış parametrelerinin değerini ile yeniden 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 Ö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

Satır güncelleştirilirken hata oluşursa, bir özel durum oluşur ve güncelleştirmenin yürütülmesi sonlandırılır. 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.

Ayrıca bkz.

Şunlara uygulanır

Update(DataSet)

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

Belirtilen DataSetiçindeki 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ştirmeler.

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

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

Döndürülenler

uygulamasından başarıyla güncelleştirilen DataSetsatır sayısı.

Uygulamalar

Özel durumlar

Kaynak tablo geçersiz.

INSERT, UPDATE veya DELETE deyimini yürütme girişimi, hiçbir kaydın etkilenmesine neden oldu.

Örnekler

Aşağıdaki örnek, OleDbDataAdapterveri kaynağını güncelleştirmek için tü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

Bir uygulama yöntemini çağırdığında Update , DbDataAdapter ö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 sıralanması nedeniyle bir DELETE deyimini, ardından bir INSERT deyimini ve sonra başka bir DELETE deyimini DataTableyürütebilir.

Bu deyimlerin toplu işlem olarak gerçekleştirilmediğine dikkat edilmelidir; her satır tek tek güncelleştirilir. Bir uygulama, deyim türlerinin GetChanges sırasını denetlemeniz gereken durumlarda 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 SqlCommandBuilder .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 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 güncelleştirme yapmadan önce ilk eşlemede listelenen tablodan satırları alır. ardından Update , özelliğinin değerini UpdatedRowSource kullanarak satırı yeniler. Döndürülen diğer satırlar yoksayılır.

verileri 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ırda yapılan 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. Olay OnRowUpdating oluşturulur.

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

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

  5. Çıkış parametreleri varsa, bu parametreler içine DataRowyerleştirilir.

  6. Olay OnRowUpdated oluşturulur.

  7. AcceptChanges çağrıldığında.

ile ilişkilendirilmiş her komutun DbDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısı Parameter sınıfının SourceColumn 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 DbDataAdapter 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 oluşturulur SystemException . Eşlemeler açıkça ayarlandığında, bir giriş parametresi için eksik eşleme genellikle bir hatanın sonucudur.
MissingMappingAction.Error oluşturulur SystemException .

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

SourceVersion bir .NET Framework veri sağlayıcısının Parameter sınıfının ö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 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 özel durum oluşturmadan güncelleştirme işlemine RowUpdated devam etmek için özelliğini RowUpdatedEventArgs olarak ContinueayarlayınStatus.

Ayrıca bkz.

Şunlara uygulanır

Update(DataRow[])

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

veritabanında belirtilen dizide 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ştirmeler.

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 bir nesne dizisi DataRow .

Döndürülenler

uygulamasından başarıyla güncelleştirilen DataSetsatır sayısı.

Özel durumlar

Kaynak tablo geçersiz.

Güncelleştirilecek yok DataRow .

-veya-

Güncelleştirilecek yok DataTable .

-veya-

Kaynak olarak kullanılacak yok DataSet .

INSERT, UPDATE veya DELETE deyimini yürütme girişimi, hiçbir kaydın etkilenmesine neden oldu.

Örnekler

Aşağıdaki örnek, OleDbDataAdapterveri kaynağını güncelleştirmek için tü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

Bir uygulama yöntemini çağırdığında Update , DbDataAdapter ö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 sıralanması nedeniyle bir DELETE deyimini, ardından insert deyimini ve sonra başka bir DELETE deyimini DataTableyü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 GetChanges sırasını denetlemeniz gereken durumlarda 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 SqlCommandBuilder .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 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 güncelleştirme yapmadan önce ilk eşlemede listelenen tablodan satırları alır. ardından Update , özelliğinin değerini UpdatedRowSource kullanarak satırı yeniler. Döndürülen diğer satırlar yoksayılır.

verileri 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ırda yapılan 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. Olay OnRowUpdating oluşturulur.

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

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

  5. Çıkış parametreleri varsa, bu parametreler içine DataRowyerleştirilir.

  6. Olay OnRowUpdated oluşturulur.

  7. AcceptChanges çağrıldığında.

ile ilişkilendirilmiş her komutun DbDataAdapter genellikle kendisiyle ilişkilendirilmiş bir parametre koleksiyonu vardır. Parametreler, bir .NET Framework veri sağlayıcısı Parameter sınıfının SourceColumn 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 DbDataAdapter 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 oluşturulur SystemException . Eşlemeler açıkça ayarlandığında, bir giriş parametresi için eksik eşleme genellikle bir hatanın sonucudur.
MissingMappingAction.Error oluşturulur SystemException .

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

SourceVersion bir .NET Framework veri sağlayıcısının Parameter sınıfının ö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 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 özel durum oluşturmadan güncelleştirme işlemine RowUpdated devam etmek için özelliğini RowUpdatedEventArgs olarak ContinueayarlayınStatus.

Ayrıca bkz.

Şunlara uygulanır