Aktualisierung Von Excel-Blatt Verwenden Von OleDb

Ich bin versucht, zu aktualisieren, eine einzelne Zelle eines Excel-Tabellenblatts. Hinweis: in meinem Beispiel-code unten bin ich mit den Variablen für die Spalte und die Reihe, denn diese ändern sich entsprechend auf andere Teile von meinem Programm, aber für debugging-Zwecke habe ich Sie Ein und 1 bzw.

Recht jetzt bin ich immer die Fehlermeldung "Syntax error (missing operator) in query expression '06:31 PM".

Bitte nicht einfach vorschlagen, die ich parametrisieren, weil ich weiß, dass dies nicht beheben mein problem und ich bin nicht besorgt über Injektion.

Vielen Dank im Voraus jeder.

        string newColumn = "A";
        string newRow = "1";
        string worksheet2 = strMonth;

        var cnnStr2 = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO\"", textBox1.Text);
        var cnn2 = new OleDbConnection(cnnStr2);

        cnn2.Open();

        string sql2 = String.Format("UPDATE [{0}$] SET {1}{2}={3}", worksheet2, newColumn, newRow, dtpTime.Text.Substring(0, 8));
        OleDbCommand objCmdSelect = new OleDbCommand(sql2, cnn2);
        objCmdSelect.ExecuteNonQuery();

        cnn2.Close();

EDIT: Basierend auf dem link von Gerhard vorgeschlagen, habe ich geändert mein Befehl text auf den folgenden:

string sql2 = String.Format("UPDATE [{0}${1}{2}:{1}{2}] SET F1='{3}'", worksheet2, newColumn, newRow, dtpTime.Text.Substring(0, 8));

Dieser jetzt erzeugt den Fehler "Operation muss eine aktualisierbare Abfrage verwenden." Nicht sicher, was jetzt zu tun sei. Die {1}{2}:{1}{2} gibt die einzelne Zelle ein Bereich auf dem Blatt {0}$ und die Formel 1 ist der default-Spalte den Namen gegeben, wenn es keine Spalte mit Namen die ich angegeben habe, in meinem Verbindungszeichenfolge HDR=NO. Schließlich die {3} die Teilstrings, die ich die Aktualisierung der Zelle und in einfache Anführungszeichen einfach weil das ist, was jeder scheint zu tun. Wenn ich Entferne die single quotes es nur produziert eine andere Fehlermeldung.

  • Ja. Dann wird sich der Fehler ändert sich auf "Kein Wert gegeben, die für eine oder mehrere der erforderlichen Parameter."
  • Vielleicht hilft: forums.asp.net/t/1214491.aspx/1
  • Oder dieses (Tutorial): yoursandmyideas.wordpress.com/2011/02/05/...
  • Dank Gerhard! Dieser link war sehr hilfreich.
  • Haben Sie sich überlegt mit den Excel-COM-interop?
  • Wenn du es gelöst hast, poste es und markiere es als gelöst. So können Sie anderen Menschen helfen und Sie können wachsen Ihre reputation.
  • Ich wusste gar nicht sehen diesen Kommentar erst, nachdem ich meine Lösung gepostet haha. Aber gute Idee Gerhard, great minds blah, blah, blah.

InformationsquelleAutor Mikkel Bang | 2013-08-22
Schreibe einen Kommentar