Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > Excel Okuma (Oledbadapter)
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
03.09.2008-15:06 #50990
Arkadaşlar,

50000 kayıtlı Excel dosyam var. Oledbadapter bunun sadece 10000 küsürünü alıyor.

Acilen yardıma ihtiyacım var.

            DataTable dtEXCEL = new DataTable();
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                     "Data Source="Filepath;" +
                     "Extended Properties=Excel 8.0;";

            OleDbConnection oleConn = new OleDbConnection(strConn);
            oleConn.Open();
            object[] _obj = new object[] { null, null, null, "TABLE" };

            DataTable dtNAME = oleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _obj);

            OleDbDataAdapter adp;

            if (dtNAME.Rows.Count > 0)
            {
                adp = new OleDbDataAdapter("SELECT * FROM [" + dtNAME.Rows[0]["TABLE_NAME"].ToString() + "]", oleConn);
                adp.Fill(dtEXCEL);
            }


Hepinize kolay gelsin.







bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
aliolci


avatar
en dipten taa derind
Kayıt: 19.01.2006
03.09.2008-21:13 #50997
OledbDatareader ile teker okumanı tavsiye edebilirim
OleDbCommand cmd = new command()
.. ..
.....
OleDbDataReader dr = cmd.ExecuteReader()

while (dr.read())
{
dr[colon index].ToString()
}





Cant you see the writing on the wall?
"die young gonna die young"
So! Live for today
Tomorrow never comes..

Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
04.09.2008-09:39 #51005
1 sorgu ile 50000 kaydın hepsini almak bana mantıklı gelmiyor. Göstereceğin kadarını alsan daha hızlı ve sorunsuz olmaz mı?





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
04.09.2008-10:56 #51009
Eğer bu iş tek seferlik ise Excel dosyasından veri almak yerine dosyayı XML olarak export edip verileri XML'den okumak daha kolay geliyor bana.





Let`s make this world a better place to live !

Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
05.09.2008-09:44 #51047
Sevecen, ne oldu sonuç? Çözüldü mü sorun?





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
05.09.2008-10:15 #51048
Buradaki önerilerinizi henüz denemedik, vakit ayıramadık, geçici olarak çözdük.

Sorun worksheetin 1 den fazla olması imiş. Ama satır satır okumak aklımızda, deneyeceğiz. Çözüme ulaşırsam buraya yazacağım.

Diğer worksheetleri silince tüm kayıtları okudu ve kaydetti (50000 küsür kaydı).

Ama worksheet 1 den fazla olsa da sorunu çözmemiz lazım.

İlginize teşekkür ederim yeniden.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
05.09.2008-10:29 #51049
Excel dosyasını "XML Spreadsheet 2003" formatında farklı kaydedersen bir XML ayrıştırıcı ile bütün worksheet'lere erişebilirsin. 50000 kayıtta sorun yaratır mı bilmiyorum ama Excel ile ilgili bir çok işimi bu yolla hallettim.





Let`s make this world a better place to live !

Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
05.09.2008-17:52 #51057
clairvoyant "XML Spreadsheet 2003" formatında farklı kaydedersen derken programdan kodla kaydetmeyi mi kastediyorsun?

Çünkü excel dosyası FileUpload ile seçilip kodla kaydedilen bir dosya.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
05.09.2008-18:35 #51058
Hayır, Excel dosyasını Office Excel 07 ile (diğer Office sürümleri destekliyor mu bilmiyorum) açıp "XML Spreadsheet 2003" formatında export ettikten sonra bu XML dosyasını sisteme göndermeyi kastediyorum. Yani sistem Excel dosyası ile değil sadece XML dosyasıyla muhattap olacak. Yani bir ara işlem. Ayrıca Ofice Excel 07 kullanarak bu formattaki XML dosyası üzerinde değişiklik yapılabiliyor.

Şu adreste XML Spreadsheet Schema ile ilgili bilgiler var:
http://msdn.microsoft.com/en-us/library/aa140066.aspx





Let`s make this world a better place to live !

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