2017-08-20 37 views
1

J'écris une application en C# avec un MS Access soutenu (.accdb). J'ai fait l'appel (sur le conseil) que SQL Server était une bien meilleure idée pour mon système, ainsi j'ai passé le dernier codage de 8 heures à SQL Server.SqlException dans .updateall après convertir OLEDB à SQL Server

En arrière-plan;

  • Changé toute connexion OLEDB, commande etc etc sql
  • fixes tous les paramètres et les variables ?-@value
  • fixe toutes les erreurs de chaîne SQL

Maintenant toutes mes formes travaillent avec le exception de ceux qui utilisent BINDING fait par Visual Studio 'wizard' (si c'est ce que l'on appelle).

J'ai 5 formes qui sont remplis à l'aide

this.tbljobTableAdapter.Fill(this.websterdbDataSet.tbljob); 

Ils utilisent tous un DataGridView selon cette information.

sur « Enregistrer et fermer », ce code est exécuté:

this.Validate(); 
this.tbluserBindingSource.EndEdit(); 

this.tableAdapterManager.UpdateAll(this.websterdbDataSet); 

_owner.PerformRefresh(); 
this.Close(); 
this.Dispose(); 

Cela fonctionne 100% encore avec ma version .ACCDB (je vérifie à partir d'une sauvegarde), mais pas maintenant qu'il est SQL Server.

Si je presse Enregistrer et fermer et ont rien changé, il se ferme, mais si je change tout terrain à tout ce qu'il échoue avec (de mon journal):

données en temps: 21/08/2017 12:12:20 AM
Nom de l'exception: Syntaxe incorrecte près de '' '. Nom de l'événement
: System.Windows.Forms.MouseEventArgs
Nom de contrôle: btnSave
Erreur ligne No.:86
Nom Forme: frmjoblist

Toute idée comment je peux De plus débugger? Je pensais que c'était quelque chose que je faisais en ajoutant Try and Catch à toutes mes sections, mais à la fin cela arrive aux 5 formes spécifiques que j'ai utilisé l'assistant au lieu de créer, de lier et d'écrire manuellement des chaînes de mise à jour SQL pour .

Merci pour tout conseil/direction.

Gangel

+2

L'erreur est dans l'instruction de requête. L'adaptateur a une commande qui contient le "texte de commande". L'erreur est dans la chaîne pour le texte de la commande que vous n'avez pas envoyé. – jdweng

+0

Un grand merci jdweng, Trouvé! maintenant pour le réparer: P Quand je passe de OLEDB à SQL pour le rendre .. plus vite j'ai remplacé tout "?" avec "@" alors je pourrais juste écrire des variables dedans. Eh bien, tous mes adaptateurs de table ne sont pas encore fixés, donc je pense que j'ai du travail devant moi !! Existe-t-il un moyen de recréer les adaptateurs? Ou simplement recréer les datagridviews .. –

+0

Donc, à peu près, j'en ai besoin pour recréer la section designer de l'ensemble de données, comme il les a construites orignalement dans OLEDB ... –

Répondre

0

Ainsi, le deisgner était encore tout à OLEDB, donc j'ai fini par supprimer l'ensemble de données et de recréer en utilisant la connexion correcte qui reconstruit le concepteur dans SQL