Füllen OleDbDataAdapter DataSet aus

Ich bin mit OleDbDataAdapter-Objekt zum Lesen der Inhalte einer Excel-Tabelle in ein dataset. Das Excel-sheet besteht aus 20391 Zeilen, die dataset liest die Gesamtzahl der Zeilen, wenn es läuft auf meiner lokalen Maschine, aber wenn der code ausgeführt wird auf einem IIS7.5 server liest nur die ERSTE 12463!!

Mein connection string:

switch (strFileType.Trim())
       {
           case ".xls":
               connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath +
                            ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
               break;
           case ".xlsx":
               connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath +
                            ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
               break;
       }

var query = "SELECT * FROM [" + excelSheets[0] + "]";

//Create the connection object
var conn = new OleDbConnection(connString);
//Open connection
if (conn.State == ConnectionState.Closed) conn.Open();
//Create the command object
var cmd = new OleDbCommand(query, conn);
var da = new OleDbDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds);

Gibt es eine Möglichkeit zum teilen da.Füllen Sie mehrere datatables?

  • Warum denken Sie, verteilen von Daten auf mehrere datatables lösen das problem der fehlenden Daten? Ich vermute, Sie haben eine andere excel-Datei auf dem server.
  • Sie können verwenden Sie eine try-catch zu überprüfen, ob etwas ist aufgetreten, während das dataset Befüllen?
  • Ich habe die Datei auf dem server und es ist die gleiche. Ich vergaß zu sagen, dass es liest nur die ERSTEN 12463.
  • Ich Tat, nichts passieren.
  • Bitte geben Sie Ihre Verbindungszeichenfolge, die Sie verwenden.
  • Bitte überprüfen Sie erneut die Frage Körper.
  • Es ist seltsam, dass es funktioniert lokal, aber nicht auf dem server. Allerdings könnte dies viele Gründe haben; andere version von DAO Bibliotheken etc. Siehe stackoverflow.com/questions/7321266/... zum Beispiel. Beachten Sie, dass Sie können auch versuchen, ändern Sie Ihre Abfrage: "SELECT * FROM [" + excelSheets[0] + "$A1:Z50000]" - also versuchen-Abfrage eine große Auswahl explizit zu sehen, was passiert.
  • Weiter, möchten Sie vielleicht zu betrachten, anstatt exceldatareader.codeplex.com oder filehelpers.com zu vermeiden, Umgang mit diese alle selbst.
  • Ein anderer Gedanke....ist es möglich IIS setup-bit, die Drosselung würde die Menge der übertragenen Daten?
  • Ich denke also, wissen aber nicht, wo könnte ich fand, dass die Einstellung am IIS, do u haben eine Idee?
  • Ich habe keine Ahnung. Bit-Drosselung ist wahrscheinlich der falsche Begriff, Begrenzung der Bandbreite kann eine bessere Sache zu suchen. Ich würde auch einen Blick in den IIS-logs, vielleicht ist etwas drin, die erklären, was passiert ist.
  • Ich drehte mich zu exceldatareader.codeplex.com und es funktioniert wie ein charme. Vielen Dank.

Schreibe einen Kommentar