La Mise À Jour De La Feuille Excel À L'Aide D'OleDb

Je suis en train de mettre à jour une seule cellule d'une feuille Excel. Remarque, dans mon exemple de code ci-dessous je suis à l'aide des variables de la colonne et de la ligne parce que cela va changer selon d'autres parties de mon programme, mais à des fins de débogage, j'ai mis à Un et 1, respectivement.

Droit maintenant, je reçois un message d'erreur indiquant "erreur de Syntaxe (opérateur absent) dans l'expression de requête '06:31 PM'.

S'il vous plaît ne pas simplement suggérer que je paramétrer parce que je sais que cela ne résoudra pas mon problème et je ne suis pas inquiet à propos de l'injection.

Merci d'avance à tout le monde.

        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: Basé sur le lien Gerhard suggéré, j'ai changé le texte de la commande à la suivante:

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

Ce produit maintenant, le message d'erreur "l'Opération doit utiliser une requête de mise à jour." Vous ne savez pas quoi faire maintenant. L'{1}{2}:{1}{2} donne l'unique plage de cellules sur la feuille de {0}$ et la F1 est la valeur par défaut de la colonne nom donné si il n'y a pas les noms de colonnes que j'ai précisé dans ma chaîne de connexion avec HDR=NO. Enfin, le {3} est le sous-chaîne dont je suis la mise à jour de la cellule et est entre guillemets simples, simplement parce que c'est ce que tout le monde semble le faire. Si j'ai supprimer les guillemets simples, il ne fait que produire une erreur différente.

  • Ouais. Ensuite, la variation de l'erreur "Aucune valeur donnée pour un ou plusieurs paramètres obligatoires."
  • Peut-être que ce sera vous aider: forums.asp.net/t/1214491.aspx/1
  • Ou ce (Tutoriel): yoursandmyideas.wordpress.com/2011/02/05/...
  • Grâce Gerhard! Ce lien a été très utile.
  • Avez-vous envisagé d'utiliser Excel COM interop?
  • Si vous l'avez résolu, le publier et de le marquer comme résolu. De cette façon, vous aidez d'autres gens et vous pouvez augmenter votre réputation.
  • Je n'ai même pas vu ce commentaire jusqu'à ce que après que j'ai posté ma solution haha. Mais bonne idée Gerhard, les grands esprits bla bla bla.

InformationsquelleAutor Mikkel Bang | 2013-08-22