DbDataAdapter.Update Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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
- 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
DataSet geçersiz.
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 DataSet
iç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:
DataRow değerleri parametre değerlerine taşınır.
OnRowUpdating olayı oluşturulur.
Komut yürütülür.
Komut
FirstReturnedRecord
olarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.Çıkış parametreleri varsa, DataRowyerleştirilir.
OnRowUpdated olayı oluşturulur.
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 DataSet
ile 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.
- Verileri düzenleme (ADO.NET)
- DbProviderFactories (ADO.NET)
- ADO.NET Genel Bakış
Ş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
- 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
DataSet geçersiz.
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:
DataRow değerleri parametre değerlerine taşınır.
OnRowUpdating olayı oluşturulur.
Komut yürütülür.
Komut
FirstReturnedRecord
olarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.Çıkış parametreleri varsa, DataRowyerleştirilir.
OnRowUpdated olayı oluşturulur.
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 DataSet
ile 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.
- Verileri düzenleme (ADO.NET)
- DbProviderFactories (ADO.NET)
- ADO.NET Genel Bakış
Ş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
Döndürülenler
DataTablebaşarıyla güncelleştirilen satır sayısı.
Özel durumlar
DataSet geçersiz.
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:
DataRow değerleri parametre değerlerine taşınır.
OnRowUpdating olayı oluşturulur.
Komut yürütülür.
Komut
FirstReturnedRecord
olarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.Çıkış parametreleri varsa, DataRowyerleştirilir.
OnRowUpdated olayı oluşturulur.
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 DataSet
ile 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.
- Verileri düzenleme (ADO.NET)
- DbProviderFactories (ADO.NET)
- ADO.NET Genel Bakış
Ş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
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:
DataRow değerleri parametre değerlerine taşınır.
OnRowUpdating olayı oluşturulur.
Komut yürütülür.
Komut
FirstReturnedRecord
olarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.Çıkış parametreleri varsa, DataRowyerleştirilir.
OnRowUpdated olayı oluşturulur.
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 DataSet
ile 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.
- Verileri düzenleme (ADO.NET)
- DbProviderFactories (ADO.NET)
- ADO.NET Genel Bakış
Ş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
Döndürülenler
DataSetbaşarıyla güncelleştirilen satır sayısı.
Özel durumlar
DataSet geçersiz.
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:
DataRow değerleri parametre değerlerine taşınır.
OnRowUpdating olayı oluşturulur.
Komut yürütülür.
Komut
FirstReturnedRecord
olarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.Çıkış parametreleri varsa, DataRowyerleştirilir.
OnRowUpdated olayı oluşturulur.
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 DataSet
ile 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.
- Verileri düzenleme (ADO.NET)
- DbProviderFactories (ADO.NET)
- ADO.NET Genel Bakış