Voici un morceau de code sur lequel j'ai travaillé ces derniers jours:
SqlConnection connectMOBILE = new SqlConnection("Server=OMADB03;Database=MOBILE;Trusted_Connection=True;"); ssortingng masterErrorSsortingng; connectMOBILE.Open(); ssortingng ssortingngIncorrectPassword = ssortingng.Concat( "SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTERED", "FROM WS_TRANSACTION", "WHERE SERVICE_ID = 'GETUSERTOKENLOGIN'"); SqlCommand commandIncorrectPassword = connectMOBILE.CreateCommand(); commandIncorrectPassword.CommandText = ssortingngIncorrectPassword; SqlDataReader reader = commandIncorrectPassword.ExecuteReader(); while (reader.Read()) { masterErrorSsortingng = reader.ToSsortingng(); BOAssistant.WriteLine(masterErrorSsortingng); }
Ce code utilise une class appelée BOAssistant
qui fonctionne comme Console.WriteLine
mais écrit à la place dans un file journal.
Ce que ce code doit faire est de collecter les résultats de ma requête et de les placer dans mon file journal, mais lorsque j'exécute ce programme, le message d'erreur suivant s'affiche:
System.Data.SqlClient.SqlException (0x80131904): syntaxe incorrecte près de 'SERVICE_ID'.
- Msg 6522, Niveau 16 d'avertissement lors de l'exécution de la procédure stockée clr
- Obtenir une valeur de string à partir de la database SQL Server
- SQL INSERT avec ExecuteNonQuery () insère des décimales supplémentaires
- Comment créer un DbCommand compatible avec SQL Server et SQLite sans grande condition?
- Fonction à exécuter tous les 30 jours
Il y a environ 20+ lignes de plus mais c'est celle qui se démarque le plus. C'est la première fois que j'écris un programme qui connecte Visual Studio et SQL Server, donc je me request si quelque chose ne va pas dans le code ou s'il me manque quelque chose dans mon code pour établir une connection plus forte. Ce qui est dans le code est maintenant le résultat de searchs que j'ai faites sur Internet. Aussi quand je cours la requête dans SQL Server cela fonctionne donc je sais que la syntaxe pour la requête est correcte.
Lorsque vous combinez votre string, vous obtenez un SQL incorrect, car les espaces sont manquants. ssortingng.Concat
vous crée cette requête:
SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTEREDFROM WS_TRANSACTIONWHERE SERVICE_ID = 'GETUSERTOKENLOGIN'
qui a évidemment des espaces manquants.
Au lieu de cela, mettez à jour votre requête avec des espaces:
ssortingng ssortingngIncorrectPassword = ssortingng.Concat( "SELECT SERVICE_ID, RESPONSE_DATA, DATE_ENTERED ", // added space "FROM WS_TRANSACTION ", // added space "WHERE SERVICE_ID = 'GETUSERTOKENLOGIN'");