none
c# datagrdiview istenilen sütünü kaydetme RRS feed

  • Genel Tartışma

  • bir exel dosyam var listview yada datagridview aktarmak istiyorum sonra içinden belli sutunlar seçip text dosyası olarak kaydetmek istiyorum bana yardımcı olabilirmisiniz örneğin ad soyad okulno bölüm branş gibi sutunlaarım var bölüm diye bir text dosyası oluşturup ad soyad bölüm sutunlarını o text dosyasına kaydedeceğim şimdiden tşk ederim
    22 Ekim 2019 Salı 06:47

Tüm Yanıtlar

  • adsoyad okulno bölüm brans

    Yukarıda gördüğünüz şey bizim verimiz ozaman : 

    sealed class Veri{
    
     public String Adsoyad{get;set;}
     public Int32 Okulno {get;set;}
     public String Bolum {get;set;}
     public String Brans {get;set;}
     
    
    
    }


    Artık excelden veriyi çekip bunları bir koleksiyona atabiliriz. (Örn koleksiyon : )

    List<Veri> veriler = new List<Veri>();

    Bundan sonrasında istediğiniz şey bence hiç doğru değil neden bir txt dosyasına yazarak hem kendinize eziyet ediyor hemde vaktinizi harcıyorsunuz ? Bir veritabanı kullansanız ve aradaki bağlantıyı ve işleride Entityframework üzerinden halletseniz daha güzel olmaz mı ? 

    Verileri kaydetme kısmı (EF) :

    using(XXX db = new XXX){
    
    
     db.TabloAdi.AddRange(veriler);//veriler listesini kaydet
     db.SaveChanges();
    
    }
     

    Olay bu kadar basit aslında işe txt dosyasını sokarsak bence daha fazla kod yazarsınız hemde yok yere :) 


    22 Ekim 2019 Salı 07:13
  • Bu sorunun iki bolumu var, excel dosyasını okuma, okunanları kaydetme.

    1) Okuma icin birçok yol var. Dogrudan ADO.Net ile acip okuyabilirsiniz, hazır Epplus, ExcelDataReader, LinqToExcel ... gibi kütüphanelerden birisini kullanabilirsiniz.

    2) Yazma kısmında, text dosyasına yazacaksanız, basitçe bir dosya acar, okuduğunuzu satir satir yazarsınız. Tabii bu dosyay,ı sonra nasıl kullanacaginiza bağlı olarak, text dosyası yerine Mehmet'in dediği gibi bir veritabanına yazmayı tercih edebilirsiniz.

    Asagida, LinqToExcel kullanarak, icerisinde Northwind ornek veritabanının Customers tablosunun kayıtları olan bir excel dosyasından, CustomerID, CompanyName, ContactName sutunlarini alıp CSV dosyası seklinde ekrana yazan bir kod ornegi mevcut:

    void Main()
    {
    	var fileName = @"d:\temp\customers.xlsx";
    	var sheetName = "Customers";
    	var excel = new ExcelQueryFactory {FileName=fileName};
    	
    	var data = from x in excel.Worksheet<MyClass>(sheetName)
    	           select x;
    			   
    	Console.WriteLine($@"CustomerID,CompanyName,ContactName");		   
    	foreach (var d in data)
    	{
    		Console.WriteLine($@"""{d.CustomerID}"", ""{d.CompanyName}"",""{d.ContactName}""");
    	}
    	
    }
    
    public class MyClass
    {
    	public string CustomerID { get; set; }
    	public string CompanyName { get; set; }
    	public string ContactName { get; set; }
    }
    Not: LinqToExcel'i NuGet'den alabilirsiniz.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    22 Ekim 2019 Salı 10:59