Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > primary key control
Yazar
ender


avatar
iskenderun
Kayıt: 14.01.2006
06.04.2007-09:44 #19432
SqlClient içerisinde yeralan SqlBulkCopy sınıfını kullanıyorum.

Tablodan gelen verileri datatable' a atıp bu datatable' a yeni satır eklenince primary key 'i aynı olanların kopyalanmasını engellemek için

bc.WriteToServer(dt, DataRowState.Added); yazıyoruz.

Peki verileri datatable yerine sqldatareader yardımıyla çekersek hangi ifadeyi yazmamız gerekiyor?

bc.WriteToServer(dr);







Yazar
tarikkranda


avatar

Kayıt: 07.01.2006
06.04.2007-11:08 #19435
ender yazdi
 
SqlClient içerisinde yeralan SqlBulkCopy sınıfını kullanıyorum.

Tablodan gelen verileri datatable' a atıp bu datatable' a yeni satır eklenince primary key 'i aynı olanların kopyalanmasını engellemek için

bc.WriteToServer(dt, DataRowState.Added); yazıyoruz.

Peki verileri datatable yerine sqldatareader yardımıyla çekersek hangi ifadeyi yazmamız gerekiyor?

bc.WriteToServer(dr);


SqlDatareader in primary key kontrolu tarzi bir ozelligi oldugunu zannetmiyorum. Siz DataTable i bu primary key kontrolu icin ara bir buffer olarak mi kullaniyorsunuz? Onun haricinde SqlBulkCopy sinifinin DataReader ile kullanimi sizin yazdiginiz sekilde zaten. bc.WriteToServer(dr);






Yazar
ender


avatar
iskenderun
Kayıt: 14.01.2006
06.04.2007-11:30 #19438
Evet öyle bir özelliği yok,fakat primary key kontrolünü bir şekilde yapmam gerekiyor.SqlDataReader ile verileri okuyup,kopyalanacak hedef tabloyu da belirtip SqlBulkCopyMapping ile eşleme yaptıktan sonra yeni kayıtlar eklenmeli,eski kayıtlar ise güncellenmeli.Bunu nasıl sağlayabileceğim asıl sorunum.







Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb