C# ile dosya olarak veri depolama konusunda uzmanlaşmak için siz de bu yazıyı okuyun! Verilerinizi düzgün bir şekilde depolayabilir, işlerinizi kolaylaştırabilirsiniz İhtiyacınız olan tüm bilgiler tek bir yazıda!
Veri depolama, yazılım uygulamalarının temel unsurlarından biridir. C# ile dosya olarak veri depolamak oldukça kolaydır ve bu makalede, C# dilinde nasıl dosya işlemleri yapılabileceğimiz incelenecektir.
Dosya işlemleri, dosyaları okuma, yazma ve güncelleme işlemlerini içerir. Verilerin doğru bir şekilde dosyalara yazılması ve dosyalardan okunması, uygulamanın güvenli ve verimli çalışmasını sağlar.
Bu makalede, dosyalara verilerin nasıl yazılacağı, dosya işlemlerinin nasıl yapılacağı, dosyalardan verilerin nasıl okunacağı ve veritabanı değişikliklerinde nasıl yapılan güncellemelerin dosyalara işlenebileceği incelenecektir.
Dosya İşlemleri
C# ile dosya işlemleri yapmak oldukça kolaydır. Dosyaları okuma, yazma ve güncelleme işlemleri yapmak için farklı sınıflar kullanılabilmektedir. Dosyalarda yapılabilecek işlemler arasında, dosyaları açma, kapatma, okuma, yazma, ekleme, silme, yeniden adlandırma ve tarih ve saat bilgisi alma işlemleri yer almaktadır.
Dosyalara veri yazmak için StreamWriter sınıfı kullanılabilmektedir. StreamWriter sınıfı, dosyaya yazı yazmak için birçok metot içermektedir. Dosya yazma işlemi tamamlandıktan sonra StreamWriter sınıfı kapatılmalıdır. Dosyaya ekleme işlemi içinse StreamWriter sınıfının Write ve WriteLine metotları kullanılabilmektedir.
Dosyaların tamamen silinmesi için FileStream sınıfının kullanımı önerilmektedir. Dosyanın tamamen silinmesi için önce FileStream sınıfı kullanılarak dosya kapatılmalıdır.
C# ile veri depolama işlemleri yapmak oldukça kolaydır. Dosya işlemleri kullanarak içeriğini kontrol ettiğimiz dosyaları açabilir, okuyabilir, yazabilir ya da silip yeniden adlandırabiliriz.
Verilerin Dosyalara Yazılması
Verilerin dosyalara yazılması, programlama dillerinde sık sık kullanılan bir işlemdir. C# programlama dilinde verileri dosyalara yazmak için farklı yöntemler kullanılabilir. StreamWriter sınıfı, dosyalara veri yazmak için en yaygın kullanılan yöntemdir. Bu sınıf, bir dosyaya yazma işlemi için gerekli olan temel işlevleri sağlar.
StreamWriter sınıfı ile bir dosyaya veri yazmak için, öncelikle StreamWriter nesnesi oluşturulur ve dosya yolu belirtilir. Ardından Write() veya WriteLine() metodu kullanılarak dosyaya veri yazılır. Write() metodu, dosyaya veri yazarken, yeni satır karakteri eklemezken, WriteLine() metodu, her satırın sonuna otomatik olarak yeni satır karakteri ekler.
```html
Metod Adı | Açıklama |
---|---|
Write() | Dosyaya veri yazarken, yeni satır karakteri eklemez |
WriteLine() | Her satırın sonuna otomatik olarak yeni satır karakteri ekler |
Bir dosyaya ekleme yapmak için StreamWriter'ın Append modunu kullanabilirsiniz. Bu mod, dosyanın sonuna yeni girdiler eklemenize olanak tanır, mevcut verileri silmez. Dosyanın tamamen silinmesi için ise FileStream sınıfı kullanılabilir. Bu sınıf sayesinde, varolan bir dosyayı silme seçeneğine sahip olabilirsiniz.
BinaryWriter, verileri ikili dosyalara yazmak için kullanılan bir sınıftır. Bu yöntem, basit ve hızlı bir çözüm sunar. BinaryWriter sınıfı, genellikle büyük dosyaları işleme konusunda iyi bir seçimdir.
```html
- StreamWriter sınıfı, bir dosyaya veri yazmak için temel işlevleri sağlar
- Append modu ile mevcut bir dosyaya kolayca ekleme yapabilirsiniz
- FileStream sınıfı, bir dosyanın tamamen silinmesini sağlayacak Seçeneği sunar
- BinaryWriter sınıfı, ikili dosyalara veri yazmak için kullanılır
Tüm bu yöntemler verilerin dosyalara yazılması için kullanılabilir. Hangi yöntemi kullanacağınıza karar vermek için, verilerin ne tür veriler olduğunu ve verilerin ne kadar büyük olduğunu dikkate almalısınız. Bu yöntemlerden hangisinin verimli olacağına karar vermek, işlem yapacağınız verilere bağlıdır.
StreamWriter Kullanımı
C# ile veri depolama işleminde dosya işlemleri oldukça önemlidir. Verilerin dosyalar üzerinde tutulması, düzenlenmesi ve okunması için farklı sınıflar kullanılabilir. StreamWriter sınıfı da bu sınıflardan biridir ve dosyalara veri yazma işlemleri için kullanılabilir.
StreamWriter sınıfı ile dosyaya veri yazmak için öncelikle StreamWriter nesnesi oluşturulmalıdır. Nesnenin oluşturulması için StreamWriter sınıfının bir dosya adı ve dosya açma modu parametreleriyle kullanılması gerekmektedir. Örneğin aşağıdaki kod dosyaya "veriler.txt" adı verilerek nasıl veri yazılacağını göstermektedir:
StreamWriter yazici = new StreamWriter("veriler.txt", true);yazici.WriteLine("Birinci satır");yazici.WriteLine("İkinci satır");yazici.Close();
Yukarıdaki kodda, "veriler.txt" adlı dosya StreamWriter sınıfıyla açılmıştır ve dosya açma modu parametresi olarak "true" kullanılmıştır. Böylece, dosyaya eklenen yeni verilerin eski verilerin üzerine yazılmasının önüne geçilmiştir. Aynı zamanda "yazici.WriteLine" komutu kullanılarak yeni veriler dosyaya eklenmiştir. Son olarak, StreamWriter nesnesi "yazici.Close()" komutuyla kapatılmıştır.
StreamWriter sınıfı, dosyaya ekleme işlemi için farklı metotlar da sunmaktadır. Örneğin, "Write" ve "WriteLine" komutları kullanılarak dosyaya veri yazmak için farklı seçenekler sunar. Bu metotlar sayesinde, dosyaya farklı veri tipleri de eklenebilir. Aşağıdaki örnekte StreamWriter sınıfının "Write" ve "WriteLine" komutları kullanılarak dosyaya farklı veri tiplerinin nasıl eklenebileceği gösterilmektedir:
StreamWriter yazici = new StreamWriter("veriler.txt", true);yazici.Write("Çalışanın adı: ");yazici.WriteLine("Ahmet Ak");yazici.Write("Yaş: ");yazici.WriteLine(35);yazici.Write("Maaş: ");yazici.WriteLine(5000.50);yazici.Close();
Yukarıdaki kodda, farklı veri tipleri ("string", "int" ve "double") StreamWriter sınıfının "Write" ve "WriteLine" komutlarıyla dosyaya eklendi. Bu sayede, dosyalar üzerinde daha detaylı ve çok yönlü veri depolama işlemleri gerçekleştirilebilir.
Dosyaya Ekleme İşlemi
Dosyaya ekleme işlemi, StreamWriter sınıfının farklı metotları kullanılarak gerçekleştirilebilir. Bu işlem için Append, Write ve WriteLine metotları tercih edilebilir. Append metodu, belirtilen dosyanın sonuna veri ekler. Write metodu, belirtilen dosyanın sonuna veri ekler ve dosyanın sonunda bir satır sonu karakteri oluşturmaz. WriteLine metodu ise belirtilen dosyanın sonuna veri ekler ve dosyanın sonunda bir satır sonu karakteri oluşturur.
Ayrıca, Append ve Write metotlarının dosya yolunu ve yazılacak veriyi içeren iki adet parametre alırken WriteLine metodu sadece yazılacak veriyi tek bir parametre olarak alır. StreamWriter sınıfının metotları sayesinde herhangi bir dosyanın sonuna veri ekleyebilir ve mevcut verileri koruyabilirsiniz.
Dosyanın Tamamen Silinmesi
Dosyaların tamamen silinmesi, bazen yazılım mühendisleri için gerekebilir. Bu işlem için FileStream sınıfı kullanılabilir. FileStream sınıfı, dosyaları açmak, okumak ve yazmak için kullanılan bir sınıftır. Dosyanın tamamen silinmesi için, öncelikle FileStream sınıfı ile dosya açılır ve FileMode.OpenOrCreate ile dosyaya erişim sağlanır. Daha sonra, dosya boyutu sıfır olarak ayarlanır ve dosya kapatılır.
Aşağıdaki örnek kodda, dosyanın tamamen silinmesi işlemi gösterilmektedir:
string filePath = "C:\\Users\\KullaniciAdi\\Desktop\\OrnekDosya.txt";FileStream fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);fileStream.SetLength(0);fileStream.Close(); |
Bu örnekte, öncelikle filePath değişkeni ile silinecek dosya belirtilir. Daha sonra, fileStream nesnesi ile dosya açılır. SetLength(0) metodu ile dosya boyutu sıfırlanır ve Close() metodu ile dosya kapatılır. Bu işlem sonucunda, dosya tamamen silinir.
BinaryWriter Kullanımı
BinaryWriter, C#'da dosyalara ikili veriler yazmak için kullanılan bir sınıftır. Bu sınıf yalnızca temel veri türlerini değil, aynı zamanda byte dizileri, karakter dizileri ve diğer veri yapılarını da dosyaya yazabilir. BinaryWriter nesnesi kullanarak, bir dosyaya veri yazmak için önce verilerin dosyaya yazacağı sıraya göre byte dizilerini ayarlamalıyız. Ardından, BinaryWriter'ın Write metodu kullanılarak veriler dosyaya yazılır. Bu yazma işlemi, StreamWriter kullanılarak yapılan yazma işlemine göre daha hızlıdır.
Aşağıda, BinaryWriter kullanarak bir dosyaya veri yazma örneği verilmiştir.İlk olarak, dosya adı ve konumu belirtilir. Daha sonra, BinaryWriter nesnesi oluşturulur ve bu nesneye dosya yolu ve kodlama tipi verilir. Son olarak, Write metodu kullanarak veriler dosyaya yazılır.
Örnek Kod |
---|
using System; using System.IO; class Program { static void Main() { string dosyaAdi = "veriler.bin"; float f = 123.45f; int n = 987; using (BinaryWriter writer = new BinaryWriter(File.Open(dosyaAdi, FileMode.Create))) { writer.Write(f); writer.Write(n); } } } |
BinaryWriter sınıfı ile yapılabilecek veri yazma işlemlerini bu şekilde detaylı bir şekilde inceledik. Bu sınıf, dosyalara hızlı ve kolay bir şekilde ikili veri yazmak için oldukça kullanışlıdır. Ancak, dosyaya yazılacak verilerin sırasını doğru bir şekilde ayarlamak çok önemlidir. Aksi takdirde, yanlış veri sırası nedeniyle hatalarla karşılaşılabilir.
Verilerin Dosyalardan Okunması
Çoğu zaman verileri dosyalarda tutmak gerekebilir. Bu durumda, verileri yazmak kadar, okumak ve düzenlemek de önemlidir. Verilerin dosyalardan okunması için kullanabileceğimiz farklı yöntemler bulunmaktadır. Bu yöntemler, kullanım amacımıza ve dosyanın yapısına göre değişebilir.
File sınıfı, dosyaların okunması için kullanılabilecek birkaç farklı metot içermektedir. Bunlardan biri, ReadAllLines metodu ile dosyanın tüm satırlarının okunmasıdır. Bu metot, string array olarak verileri geri döndürmektedir. Verilerin yapısı uygun bir şekilde okunarak işlenebilir.
Ayrıca, BinaryReader sınıfı kullanarak da dosyalar okunabilir. Bu sınıf ile binary formatındaki veriler okunabilmektedir. Bu yöntem, özellikle çok büyük dosyaların okunmasında kullanışlı bir seçenektir.
Verilerin düzenlenmesi ve işlenmesi için StreamReader sınıfı kullanılabilir. Bu sınıf, bir dosyayı satır satır okuyarak verilerin üzerinde işlem yapabilmemizi sağlamaktadır. XmlSerializer sınıfı ise, XML verileri üzerinde çalışmak için kullanılmaktadır. Dosyalarımızın yapısına uygun bir yöntem seçerek, verileri okuyabilir, düzenleyebilir ve işleyebiliriz.
File.ReadAllLines Metodu
Dosyalar üzerinde veri okuma işlemleri yapmak için kullanılabilecek farklı yöntemler bulunmaktadır. Bunlardan birisi de File sınıfının ReadAllLines metodu kullanarak dosyadan veri okumaktır. Bu metot, belirtilen dosyadaki tüm satırları bir string dizisine aktarır. Bu şekilde, okunan veriler bir döngü ile işlenerek program içinde kullanılabilir.
Aşağıda örnek bir kod bloğu verilerek ReadAllLines metodu nasıl kullanıldığı görülebilir. Bu örnekte, önceden oluşturulmuş bir "metinDosyasi.txt" dosyasından tüm satırlar okunarak konsola yazdırılmaktadır.
string[] satirlar = File.ReadAllLines("metinDosyasi.txt");foreach (string satir in satirlar){ Console.WriteLine(satir);}
Yukarıdaki örnekte görüldüğü gibi, ReadAllLines metodu ile okunan veriler bir string dizisine atandı ve sonrasında bu dizi üzerinde döngü yapılarak okunan veriler işlendi. Bu yöntem dosyaların okunması için oldukça kullanışlıdır.
BinaryReader Kullanımı
BinaryReader sınıfı, dosyalardan ikili verileri okumak için kullanılır. Bu sınıfın bir örneği, bir dosyanın okunması için StreamReader gibi kullanılabilir. Ancak, BinaryReader sınıfı, StreamReader sınıfı yerine kullanılması daha uygun olan ikili dosyalardan veri okuma işlemleri için kullanılır.
- BinaryReader sınıfı kullanılarak, dosyadan okunacak veri türleri ayarlanabilir.
- Okunacak veri türleri, ReadInt32(), ReadDouble() ve ReadBoolean() gibi metotlar kullanılarak okunabilir.
Aşağıdaki kod parçası, BinaryReader sınıfının kullanımını göstermektedir:
Dosya İçeriği | Kod Parçası |
---|---|
10 bytes of binary data | byte[] data = File.ReadAllBytes("data.bin");using(BinaryReader reader = new BinaryReader(new MemoryStream(data))){ int intValue = reader.ReadInt32(); double doubleValue = reader.ReadDouble(); bool boolValue = reader.ReadBoolean(); // okunan değerler kullanılabilir} |
BinaryReader sınıfı, dosyalardan veri okurken, hangi veri türlerinin okunacağı belirtilebilir. Bu, veri okuma işleminin daha optimize edilmesini sağlar ve hataları minimuma indirir. Ayrıca, BinaryWriter sınıfı ile yazılan veriler, BinaryReader sınıfıyla rahatlıkla okunabilir.
Verilerin Düzenlenmesi
C# ile verilerin dosyalara kaydedilmesi ve okunması gibi basit işlemlerin yanı sıra, bu verileri düzenleyebilmek de önemli bir adımdır. Bu işlemler sırasında, StreamReader sınıfı kullanarak dosyaları okuyabilir ve StreamWriter sınıfı kullanarak dosyalara yazabilirsiniz. Belirli bir dosya konumunda değişiklik yapmak istediğinizde, FileStream sınıfını kullanarak dosyaların baştan yazılması veya tamamen silinmesi seçeneklerini düşünebilirsiniz.
Verilerin belirli bir dosyadaki konumunu değiştirmek istiyorsanız, var olan bir dosyayı okumalı ve düzenleme işlemini gerçekleştirmelisiniz. StreamReader sınıfı bu işlemler için kullanılabilir. Ayrıca, XML dosyalarıyla işlem yapmak istediğinizde, XmlSerializer sınıfını kullanarak bu dosyaları okuyup düzenleyebilirsiniz.
Yener Uluğ, veritabanlarındaki değişikliklerin düzenlenmesi konusunda şunları söylüyor: "Veritabanı yapısı değiştirildiğinde, mevcut verilerin değişikliklere uygun hale getirilmesi gerekir. Bu işlem genellikle, her bir veri öğesi için tek tek yapılır, ancak SqlBulkCopy sınıfı kullanarak bu işlem daha verimli bir şekilde gerçekleştirilebilir. Bu yöntem, verilerin büyük ölçekli bir şekilde düzenlenmesine ve veritabanına yüklenmesine olanak tanır."
Sonuç olarak, verileri düzenlemek, depolamak ve okumak için C# kullanıcısıysanız farklı yöntemlerle bir dizi seçeneğiniz vardır. StreamWriter, BinaryWriter, StreamReader, BinaryReader, XmlSerializer ve SqlBulkCopy gibi sınıflar, bu işlemler için birçok farklı fonksiyona sahip olduğundan, nasıl yapacağınızı ve hangi sınıfın kullanılacağını belirlemek için kendi ihtiyaçlarınızı düşünmelisiniz.
StreamReader Kullanımı
StreamReader sınıfı, C# ile dosyalardan veri okuma işlemlerinde sıkça kullanılan bir sınıftır. StreamReader sınıfı, bir FileStream nesnesi kullanarak belirtilen dosyayı veya akışı açar ve dosyadaki verileri okuyabilir.
Bir dosyayı StreamReader sınıfı ile açmak için, StreamReader nesnesi oluşturmak ve FileStream nesnesine dosya yolunu ve dosya açma modunu iletmek gerekir. Dosya yolunu ve açma modunu belirledikten sonra, StreamReader sınıfının ReadLine() veya ReadToEnd() yöntemleri kullanılarak dosyadaki veriler okunabilir.
StreamReader sınıfı ayrıca dosyadaki satırların düzenlenmesi için de kullanılabilir. Örneğin, dosya içindeki belirli bir metni aramak için ReadLine() yöntemi ile dosyayı satır satır okuyabilir ve String.Contains() yöntemini kullanarak aranan metnin içinde olup olmadığını kontrol edebilirsiniz. Ayrıca, satırları okurken String.Split() yöntemiyle satırları bölerek veri manipülasyonu da yapabilirsiniz.
Bununla birlikte, dosyalarla çalışırken dikkatli olmak önemlidir. Dosya okuması veya yazması yapılan işlemlerde hata kontrolü yapmak gerekir. Örneğin, dosyanın açılamaması veya dosya içinde hatalı veri olması gibi durumlarda StreamReader sınıfı hata fırlatacaktır. Bu nedenle, try-catch blokları kullanarak hata yönetimini gerçekleştirmek önemlidir.
StreamReader sınıfı, C# ile dosya işlemlerinde oldukça kullanışlı bir sınıftır. Hem dosya içeriğinin okunması hem de düzenlenmesi için kullanılabilir. Bu sayede, boyutu büyük verileri okumak, düzenlemek ve yönetmek çok daha kolay hale gelir.
XmlSerializer Kullanımı
C# ile verilerin XML formatında depolanmasına olanak veren XmlSerializer sınıfı, kolay ve etkili bir yöntemdir. Bu sınıf sayesinde, nesneleri XML belgelerine serileştirebilir ve tam tersi işlemleri gerçekleştirebilirsiniz.
Kullanımı oldukça basittir. İhtiyacınız olan tek şey, çalışmanızda bulunan sınıflarınızı XmlSerializer sınıfı ile işaretlemektir. Bu sayede, belirtilen sınıflar XmlSerializer tarafından işlenir ve XML belgelerine dönüştürülür.
XmlSerializer, serialize ettiğiniz nesnelerin verilerini, XML elemanları olarak belgelere dönüştürür. Bu elemanlar, iç içe geçmiş yapıda olabilir ve birden fazla özellik içerebilirler.
Bir diğer faydası da, serileştirilmiş XML belgelerinin aynı zamanda web servislerinde de kullanılabilmesidir. Yani, bu belgeler ile web servislerine veri aktarımı sağlanabilir.
Aşağıdaki örnek kodda bir çalışan nesnesi serialize edilerek XML belgesi oluşturulmuştur:
Çalışan Sınıfı Özellikleri |
---|
string Adı |
string Soyadı |
int Yaşı |
string Departmanı |
// Serileştirme işlemiÇalışan çal = new Çalışan();çal.Adı = "Ali";çal.Soyadı = "Yılmaz";çal.Yaşı = 30;çal.Departmanı = "Muhasebe";XmlSerializer serializer = new XmlSerializer(typeof(Çalışan));using (TextWriter writer = new StreamWriter(@"C:\Çalışan.xml")){ serializer.Serialize(writer, çal);}// XML Belgesi<Çalışan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">Ali Yılmaz 30 Muhasebe Çalışan>
Yukarıdaki örnek kodda, Çalışan sınıfına ait özellikler serialize edilerek XML belgesi oluşturulmuştur. Eğer oluşturulacak XML belgesinde farklı sınıflar da kullanılacaksa, o sınıfların özellikleri de belirtilmelidir.
XmlSerializer sınıfı, veri depolama işlemlerinde oldukça fazla tercih edilen bir yöntemdir. Basit bir kullanıma sahip olması ve XML belgelerinin web servislerinde de kullanılabilmesi nedeniyle, büyük projelerde de sıklıkla kullanılmaktadır.
Veritabanı Değişiklikleri
Veri depolama yöntemleri değiştikçe, mevcut veritabanlarına veri yapısı eklemek gerekebilir. Bu durumda, yeni bir tablo oluşturma ihtiyacı ortaya çıkmadan mevcut tablolara yeni sütunlar eklemek veya mevcut sütunlarda değişiklikler yapmak gerekir. İşlem yapılacak veritabanına göre değişebileceği için bu makalede genel bir bilgi verilecektir.
Veritabanı değişiklikleri için kullanılabilecek farklı yöntemlerde vardır. Bunlardan biri, SQL sorguları kullanarak ALTER TABLE komutunu kullanmaktır. Bu yöntemde, mevcut tablodaki sütunlara yeni bir sütun eklemek veya mevcut sütunların veri tipi veya boyutu gibi özelliklerini değiştirmek mümkündür. Ancak bu yöntem, uzmanlık gerektiren bir işlemdir ve yanlış bir sorgu yapıldığında veritabanındaki veriler zarar görebilir.
Bunun yerine, Entity Framework gibi ORM (Object-Relational Mapping) araçlarını kullanarak veritabanı değişiklikleri yapmak daha güvenli bir yöntemdir. Bu araçlar, tablolar, sütunlar ve ilişkiler üzerinde kod tarafından değişiklik yapılmasını sağlar ve gerektiğinde veritabanı şemasını günceller. Bu yöntem, SQL sorgularını doğrudan yazmak yerine, daha önceden tanımlanmış kod bloklarını kullanarak veritabanında değişiklik yapmak mümkün kılar.
Bir diğer yöntem ise, SqlBulkCopy sınıfını kullanmaktır. Bu sınıf, veritabanındaki bir tabloya büyük miktarda veri eklemek için kullanılır. Bu sayede, verilerin tek tek eklenmesi yerine toplu halde eklenerek işlemin daha hızlı yapılması sağlanır.
SqlBulkCopy Kullanımı
SqlBulkCopy sınıfı, veri tabanında büyük miktarda veri eklemek için kullanılan bir .NET özelliğidir. Bu sınıfın kullanımı, büyük miktarda verinin veri tabanına eklenmesini çoğu zaman daha verimli hale getirir. SqlBulkCopy sınıfı, belirli bir sorgu çalıştırmak yerine birçok sorguyu toplayarak tek seferde veri tabanına gönderir ve bu sayede veritabanı performansını artırır.
SqlBulkCopy sınıfına veri eklemeden önce, verilerin bir kaynaktan alınması ve ardından belirli bir hedefe aktarılması gereklidir. Verilerin nereden alınacağına ilişkin kaynaklar farklı olabilir, ancak genellikle bir dosya, bir veritabanı veya bir önbellek kullanılır. SqlBulkCopy sınıfı, verilerin okunması ve hedef tabloya aktarılması arasındaki işlere aracılık eder. Bu süreç, büyük miktarda veriyi daha hızlı ve daha etkin bir biçimde veri tabanına aktarmanın en iyi yoludur.
SqlBulkCopy sınıfı kullanımı örneklendirilebilir. Diyelim ki bir bankanın müşteri kayıt bilgilerini içeren büyük bir Excel tablosu var ve bu veriler veri tabanına eklenmek isteniyor. Bu veriler, kaynak dosyadan yüklenir ve ardından hedef tabloya SqlBulkCopy sınıfı aracılığıyla aktarılır. Bu, birçok sorguyu tek seferde veri tabanına göndererek, veri tabanı performansını artıracaktır.
using | System.Data.SqlClient; |
using | System.Data; |
namespace | BulkCopyExample |
{ | |
class | Program |
{ | |
static | void |
Main(string[] | args) |
{ | |
string | connectionString = "Data Source=servername; Initial Catalog=databasename; Integrated Security=True;"; |
SqlConnection connection = new SqlConnection(connectionString); | |
SqlBulkCopy bulkCopy = new SqlBulkCopy(connection); | |
bulkCopy.DestinationTableName = "Products"; | |
DataTable table = new DataTable(); | |
table.Columns.Add("ProductID", typeof(int)); | |
table.Columns.Add("ProductName", typeof(string)); | |
table.Columns.Add("ProductPrice", typeof(decimal)); | |
DataRow row = table.NewRow(); | |
row["ProductID"] = 1; | |
row["ProductName"] = "Product 1"; | |
row["ProductPrice"] = 10.0; | |
table.Rows.Add(row); | |
bulkCopy.WriteToServer(table); | |
} | |
} | |
} |
- Data Source: Veritabanı sunucusu adını veya IP adresini belirtir.
- Initial Catalog: Veritabanı adını belirtir.
- Integrated Security: Windows Kimlik Doğrulama'yı kullanmak için True olarak ayarlanır.
- SqlConnection: Veritabanına bağlantı açmak için kullanılan bir sınıftır.
- SqlBulkCopy: Veri tabanına büyük miktarda veri eklemek için kullanılan bir sınıftır.
- DataRow: DataTable nesnesindeki bir satırı temsil eder.
- DataTable: Bellek içinde bir tablo oluşturur ve sütunların belirtilmesine olanak tanır.